我生成了一個腳本,它爲這個數據庫創建所有用戶和模式,當我用CRE EXETS檢查包裝CREATE語句時,我發現它不允許CREATE SCHEMA調用在BEGIN/END塊中運行。它抱怨說這是無效的語法。但我可以自行運行命令。代碼示例如下。我正在使用SQL Server 2008和Management Studio R2。爲什麼這是無效的語法?爲什麼我不能在SQL Management Studio的開始/結束塊中使用「create schema」?
--DROP SCHEMA [acme]
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'acme'))
BEGIN
CREATE SCHEMA [acme] AUTHORIZATION [dbo]
END
我已經清除,我可以換用EXECUTE允許語句工作create schema語句。請參閱EXECUTE('CREATE SCHEMA [acme] AUTHORIZATION [dbo]')http://msdn.microsoft.com/en-us/library/ms189462.aspx – Brennan 2011-04-21 18:16:26
這是馬屁吧...當然,我們並不是都混淆我們的代碼用無意義的EXEC語句? – 2016-04-26 21:32:38