这是查询
"2","22","20","2"
"3","33","5","2"
"5","36","225","2"
* intColumn是Table1中的一列 它成功执行了查询,但columnA的值为0,其中最初声明了@tempvarA。我在这里遗漏了什么,或者@tempvarA的值是否仅在执行更新语句后更新?
我尝试了以下内容:
DECLARE @tempvarA INT = 0
UPDATE Table1 SET @tempvarA = 1 + intColumn, columnA = @tempvarA
它有效,但我认为应该有更合适的方法来实现它。
答案 0 :(得分:4)
因此,如果我正确理解您的问题,首先您要声明一个变量并使用值设置它,然后使用该变量更新列的值。让我们一步一步来看:
1)声明变量:
DECLARE @tempvarA INT;
2)设置变量:
SET @tempvarA = 1;
3)用所述变量更新表:
UPDATE Table1 SET columnA = @tempvar1;
但要小心。以上内容会将columnA
的所有值更新为tempvarA
的值。如果您想要特定的行,则必须在UPDATE
语句中添加where子句。
答案 1 :(得分:1)
有关
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
这对我来说很好。