動的なSQL文を作成しようとしていますが、ファイル - > dbランディングテーブルのすべての列のすべての値から引用符を削除します。カーソルを使用してストアドプロシージャのSQL文を無限ループで作成する
に似た何か:私は、動的ステートメントを構築するために、このスクリプトを使用しています
Update table
set col1 = replace(col1, '"', ''),
col2 = replace(col2, '"', ''), ....
。
declare @query As varchar(1000)
declare @tablename as varchar(50)
declare @field as VARCHAR(50)
set @tablename = 'Contact'
set @query = 'Update [buyerhero_staging].[dbo].[Contact] SET ';
DECLARE RecSet CURSOR FOR
SELECT
CONCAT(COLUMN_NAME, '=REPLACE(,', COLUMN_NAME, ',''"'', '''')') as setcol
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = @tablename;
OPEN RecSet
FETCH NEXT FROM RecSet INTO @field
WHILE @@FETCH_STATUS = 0
BEGIN
SET @query = CONCAT(@query, ' ',@field, ', ')
END
CLOSE RecSet
DEALLOCATE RecSet
SELECT @query
問題は、このスクリプトが無限ループで実行されていることと、その理由を伝えられないことです。 特にselectステートメントはsubsecondリターンを実行するためです。
私には何が欠けていますか?
ありがとうございました
okです。どこに行くの? – arcee123