MSSQL 中的 UPDATE 语句中的 SET 不起作用
SET inside UPDATE Statement in MSSQL not working
这是查询
DECLARE @tempvarA INT = 0
UPDATE Table1 SET @tempvarA = 1 + intColumn, columnA = @tempvarA
*intColumn 是表 1 中的列
它成功执行了查询,但 columnA 的值为 0,其中最初声明了 @tempvarA。我是不是遗漏了什么,或者 @tempvarA 的值只在更新语句执行后才更新?
我试过以下方法:
DECLARE @tempvarA INT = 0
UPDATE Table1 SET @tempvarA = 1 + intColumn
UPDATE Table1 SET columnA = @tempvarA
它有效,但我认为应该有更合适的方法。
因此,如果我对您的问题的理解正确,您首先要声明一个变量并为其设置一个值,然后使用该变量更新列的值。让我们一步一步来:
1)声明变量:
DECLARE @tempvarA INT;
2)设置变量:
SET @tempvarA = 1;
3)用上述变量更新table:
UPDATE Table1 SET columnA = @tempvar1;
不过要小心点。以上将把 columnA
的所有值更新为 tempvarA
的值。如果您想要特定的行,则必须在 UPDATE
语句中添加一个 where 子句。
为了
DECLARE @tempvarA INT = 0
UPDATE Table1 SET @tempvarA = 1, columnA = @tempvarA
你可以试试
DECLARE @tempvarA INT = 0
UPDATE t SET @tempvarA = 1, t.columnA = @tempvarA from My_Table_Name t
这对我来说很好用。
这是查询
DECLARE @tempvarA INT = 0
UPDATE Table1 SET @tempvarA = 1 + intColumn, columnA = @tempvarA
*intColumn 是表 1 中的列 它成功执行了查询,但 columnA 的值为 0,其中最初声明了 @tempvarA。我是不是遗漏了什么,或者 @tempvarA 的值只在更新语句执行后才更新?
我试过以下方法:
DECLARE @tempvarA INT = 0
UPDATE Table1 SET @tempvarA = 1 + intColumn
UPDATE Table1 SET columnA = @tempvarA
它有效,但我认为应该有更合适的方法。
因此,如果我对您的问题的理解正确,您首先要声明一个变量并为其设置一个值,然后使用该变量更新列的值。让我们一步一步来:
1)声明变量:
DECLARE @tempvarA INT;
2)设置变量:
SET @tempvarA = 1;
3)用上述变量更新table:
UPDATE Table1 SET columnA = @tempvar1;
不过要小心点。以上将把 columnA
的所有值更新为 tempvarA
的值。如果您想要特定的行,则必须在 UPDATE
语句中添加一个 where 子句。
为了
DECLARE @tempvarA INT = 0
UPDATE Table1 SET @tempvarA = 1, columnA = @tempvarA
你可以试试
DECLARE @tempvarA INT = 0
UPDATE t SET @tempvarA = 1, t.columnA = @tempvarA from My_Table_Name t
这对我来说很好用。