我想通过传递表名和列名
来动态反转COLUMN DATADECLARE @TABLE_NAME NVARCHAR(300) -- to pass table name dynamically
DECLARE @COLUMN_NAME NVARCHAR(300) -- to pass column name dynamically
SET @TABLE_NAME = 'TEST1' -- Passing table name
SET @COLUMN_NAME = 'SSN' -- Passing column Name
DECLARE @OUTPUT NVARCHAR(MAX) -- to pass the selected column data to update
SET @OUTPUT = 'SELECT'+' '+@COLUMN_NAME+' '+'FROM'+@TABLE_NAME
DECLARE @UPDATE_EXEC NVARCHAR(MAX) -- To exec the Final update result
SET @UPDATE_EXEC = 'UPDATE ['+@TABLE_Name + ']'+'SET'+' '+@COLUMN_NAME+
'=REVERSE(EXEC (@output))'
EXEC(@UPDATE_EXEC)
但是我收到了这些错误:
第15行,第1行,第1行,第1行 关键字' EXEC'附近的语法不正确。
Msg 137,Level 15,State 2,Line 1
必须声明标量变量" @ output"
答案 0 :(得分:0)
您正在尝试将EXEC放入更新查询中,但不允许这样做。 EXEC用于执行查询,它不能是任何查询的一部分。
要反转表格中的任何列,您可以执行以下操作,
SET @UPDATE_EXEC ='UPDATE ['+ @ TABLE_Name +']'+'SET'+''+ @ COLUMN_NAME +'= REVERSE('+ @ COLUMN_NAME +')';
EXEC(@UPDATE_EXEC);