我有我想添加到存儲過程中的以下腳本。現在,當我運行這個SELECT語句打印出所有的INSERT語句。我想從我的存儲過程中自動運行這些插入語句。插入語句的SQL生成
我試過各種方式執行動態SQL,但我一直沒有成功,主要是由於我的腳本引用的系統表。無論如何,生成適當的INSERT語句並同時運行它們嗎?
我爲此使用SQL Server。
我的代碼:
DECLARE @tablename as varchar(255) = 'tblsmoker'
DECLARE @SQL VARCHAR(MAX)
SET @SQL = (SELECT 'INSERT INTO tblCheck (ColumnName,ColumnValue,SID,SName,RID,RName)VALUES (''' + QUOTENAME(c.name) + ''',NULL,0,NULL,0,NULL);'
FROM sys.columns c
WHERE c.object_id = OBJECT_ID(@tablename))
print @SQL
EXEC(@SQL)
此代碼是給我:
子查詢返回多個值。當 子查詢遵循=,!=,<,< =,>,> =或當子查詢用作 表達式時,這是不允許的。
動態sql是這樣的。如果您嘗試過並且不成功,請發佈您的嘗試,以便我們可以對其進行調試。 –
請不要使用'set ... =(select)'語法。它傷害了我的眼睛。所有你真正需要的是'select @sql ='insert into ...'from ... where ...' – ajeh