我有一个项目,我最近升级到ASP.NET MVC 3.在我的本地机器上,一切正常.当我部署到服务器时,我在任何时候使用RedirectToAction呼叫都会收到错误.它抛出一个System.InvalidOperationException错误消息路由表中没有路由匹配提供的值.我的假设是服务器上存在一些配置问题,但我似乎无法弄明白.
我的问题与单个更新语句中的更新顺序有关。我观察到,当我使用SELECT语句设置变量时,变量是按顺序设置的。例如:
SELECT
@Test1 = 2,
@Test2 = @Test1 + 1
Run Code Online (Sandbox Code Playgroud)
此时@Test1将会2并且@Test2将会是3因为设置操作是按顺序完成的。但是会发生什么UPDATE?
UPDATE TestTable SET
Test1 = 2,
Test2 = Test1 + 1
Run Code Online (Sandbox Code Playgroud)
在计算中会Test2使用 的初始值Test1还是会使用我们刚刚设置的值?如果它是 aUPDATE内部的语句,它有什么区别MERGE吗?
MERGE INTO TestTable AS T
USING (
SELECT
Test1,
Test2
FROM SomeOtherTable
) AS S
ON S.Test1 = T.Test1
WHEN MATCHED THEN
UPDATE SET
T.Test1 = 2,
T.Test2 = T.Test1 + 1
;
Run Code Online (Sandbox Code Playgroud)