【发布时间】:2017-06-13 08:10:39
【问题描述】:
尝试从表中获取表名和列名的输入(具有要修改的表和列的列名)并修改表的列值(从要修改的表接收输入)
DECLARE @TABLE_1 NVARCHAR(MAX)--Passing Table name to Modify
DECLARE @COLUMN_NAME NVARCHAR(300)--Passing Column name to modify
DECLARE INPUT_CURSOR CURSOR FOR
/*Actual Table contains which Table and Column to modify*/
SELECT TABLE_NAME,COLUMN_NAME FROM INPUT
OPEN INPUT_CURSOR
FETCH NEXT FROM INPUT_CURSOR INTO @TABLE_1, @COLUMN_NAME
WHILE @@FETCH_STATUS=0
BEGIN
SET @TABLE_1='TABLE_NAME'-- INPUT TABLE_NAME
SET @COLUMN_NAME='COLUMN_NAME'--INPUT COLUMN_NAME
DECLARE @EXEC_SQL NVARCHAR(MAX)--To execute Dynamic SQL Update Statement
SET @EXEC_SQL= 'UPDATE'+' ['+@TABLE_1+'] '+'SET'+'
'+@COLUMN_NAME+'=REVERSE( (999999999-'+@COLUMN_NAME+'))'
EXEC(@EXEC_SQL)
FETCH NEXT FROM INPUT_CURSOR INTO @TABLE_1,@COLUMN_NAME
END
CLOSE INPUT_CURSOR
DEALLOCATE INPUT_CURSOR
Receiving Error
Msg 208, Level 16, State 1, Line 1
Invalid object name 'TABLE_NAME'.
Msg 208, Level 16, State 1, Line 1
Invalid object name 'TABLE_NAME'.
Msg 208, Level 16, State 1, Line 1
Invalid object name 'TABLE_NAME'.
Msg 208, Level 16, State 1, Line 1
Invalid object name 'TABLE_NAME'.
【问题讨论】:
标签: sql-server tsql cursor dynamic-sql