我想知道是否可以讓腳本執行返回的行。我有選擇我設計返回2行,它看起來像我可以執行select返回的行嗎?
alter table zamestnanci drop DF__zamestnan__datum__2E1BDC42 go sp_bindefault 'abc','zamestnanci.datum_pridania'
我滴速默認,使綁定默認。
感謝您的幫助。
我想知道是否可以讓腳本執行返回的行。我有選擇我設計返回2行,它看起來像我可以執行select返回的行嗎?
alter table zamestnanci drop DF__zamestnan__datum__2E1BDC42 go sp_bindefault 'abc','zamestnanci.datum_pridania'
我滴速默認,使綁定默認。
感謝您的幫助。
如果您可以在一個批處理中運行所有語句,並且它們已經以分號正確結束,則可以構建一個SQL字符串並一次執行整個事件。
DECLARE @sql NVARCHAR(MAX) = (SELECT SomeColumn
FROM [Table]
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)');
EXECUTE sp_executesql @sql;
,如果你想通過一個執行語句一個你可以使用光標:
DECLARE sqlCursor CURSOR LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
SELECT SomeStatement
FROM [Table];
DECLARE @sql NVARCHAR(MAX);
OPEN sqlCursor;
FETCH NEXT FROM sqlCursor INTO @sql;
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE sp_executesql @sql;
FETCH NEXT FROM sqlCursor INTO @sql;
END
第一種方法很容易在應該是「批處理中唯一的語句」的命令上失敗,因爲它沒有批分隔符,並且所有的批處理都在1批中執行 – sepupic
您將需要使用動態SQL類似的東西。 [動態SQL的詛咒和祝福--Erland Sommarskog](http://www.sommarskog.se/dynamic_sql.html) – SqlZim
將結果輸出到文本,而不是網格,然後在查詢窗口中複製+粘貼 – sepupic
如果您想要自動化它,可以使用'sp_executeSql'和一個遊標。 – Adwaenyth