【发布时间】:2017-01-27 18:54:08
【问题描述】:
我想通过传递表名和列名来动态反转 COLUMN DATA
DECLARE @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)
但我遇到了这些错误:
消息 156,第 15 级,状态 1,第 1 行
关键字“EXEC”附近的语法不正确。消息 137,第 15 级,状态 2,第 1 行
必须声明标量变量“@output”
【问题讨论】:
-
您不能将 EXEC 放在任何查询中。
-
SET @UPDATE_EXEC = 'UPDATE ['+@TABLE_Name + ']'+'SET'+' '+@COLUMN_NAME+ '=REVERSE('+@COLUMN_NAME+')'
-
@AnilAgrawal 请将您的答案作为实际答案而不是 cmets。
标签: sql-server dynamic