我已經閱讀并閱讀了MSDN等。好吧,所以它表明批處理已結束。什么定義了批次?當我粘貼一堆腳本以同時全部運行時,我不明白為什么需要這樣做。我從不了解GO。任何人都可以更好地解釋這一點,以及何時需要使用它(在進行幾次或哪種類型的交易之后)?例如,為什么每次更新后我都需要GO: UPDATE [Country] SET [CountryCode] = 'IL' WHERE code = 'IL' GO UPDATE [Country] SET [CountryCode] = 'PT' WHERE code = 'PT'
3 回答

拉莫斯之舞
TA貢獻1820條經驗 獲得超10個贊
許多命令需要分批處理,例如 CREATE PROCEDURE
或者,如果您將列添加到表中,則該列應該是自己的批處理。如果您嘗試在同一批次中選擇新列,則它將失敗,因為在解析/編譯時該列不存在。
SQL工具使用GO來從一個腳本中解決這個問題:它不是SQL關鍵字,引擎無法識別。
這些是批處理日常使用的2個具體示例。
編輯:在您的示例中,您不需要GO ...
編輯2,示例。您不能批量刪除,創建和許可...特別重要的是,存儲過程的結尾在哪里?
IF OBJECT_ID ('dbo.uspDoStuff') IS NOT NULL
DROP PROCEDURE dbo.uspDoStuff
GO
CREATE PROCEDURE dbo.uspDoStuff
AS
SELECT Something From ATable
GO
GRANT EXECUTE ON dbo.uspDoStuff TO RoleSomeOne
GO
- 3 回答
- 0 關注
- 764 瀏覽
添加回答
舉報
0/150
提交
取消