2017-01-27 7 views
0

テーブルからテーブル名と列名を入力しようとすると(テーブルと列を変更する列名を持つ)、変数に列名を入力し、カーソルを使用して入力列値を更新する

SET @TABLE_1='TABLE_NAME'-- INPUT TABLE_NAME 
SET @COLUMN_NAME='COLUMN_NAME'--INPUT COLUMN_NAME 

FETCH文は、各レコードの変数に値を入れます。表(入力、変更するテーブルから受け取った)

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'+' ['[email protected]_1+'] '+'SET'+' 
'[email protected]_NAME+'=REVERSE((999999999-'[email protected]_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'. 

答えて

0
DECLARE INPUT_CURSOR CURSOR FOR 

/*Actual Table contains which Table and Column to modify*/ 
SELECT TABLE_NAME, COLUMN_NAME FROM INPUT 

/*Cursor invokes each table and column name to be modified Passed to 
@Table_1,@Column_Name*/ 
OPEN INPUT_CURSOR 
DECLARE @TABLE_1 NVARCHAR(300)--Passing Table name to Modify 
DECLARE @COLUMN_NAME NVARCHAR(300)--Passing Column name to modify 
FETCH NEXT FROM INPUT_CURSOR INTO @TABLE_1, @COLUMN_NAME 
WHILE @@FETCH_STATUS=0 
BEGIN 
DECLARE @EXEC_SQL NVARCHAR(MAX)--To execute Dynamic SQL Update Statement 
SET @EXEC_SQL= 'UPDATE'+' ['[email protected]_1+'] '+'SET'+' '[email protected]_NAME+ 
'=REVERSE((999999999-'[email protected]_NAME+'))' 
EXEC(@EXEC_SQL) 
FETCH NEXT FROM INPUT_CURSOR INTO @TABLE_1,@COLUMN_NAME 
END 
CLOSE INPUT_CURSOR 
DEALLOCATE INPUT_CURSOR 
0

それはあなたの問題はここにある可能性があります。これらのsetステートメントでは、それらを「TABLE_NAME」の静的値に再設定し、

関連する問題