在Transact-SQL中,批處理是一組作爲一個組一起提交併作爲一個組執行的SQL語句。批可以存儲在命令文件中。什麼是批次?
包含幾個SQL語句的* .sql文件被認爲是批處理?我們還有什麼考慮一批?
在Transact-SQL中,批處理是一組作爲一個組一起提交併作爲一個組執行的SQL語句。批可以存儲在命令文件中。什麼是批次?
包含幾個SQL語句的* .sql文件被認爲是批處理?我們還有什麼考慮一批?
是一個* .sql文件,其中包含幾個被視爲批處理的sql語句?
的排序。一個* .sql文件實際上可以包含多個批次。您可以通過批分隔符分隔批次。您可能需要多個批處理文件,因爲某些語句(特別是某些「ALTER」命令)每批只能執行一次。這可能會使得像在循環中執行ALTER一樣棘手。
這裏的另一個訣竅是如何分離文件/文檔中的各個批次。在99%的Sql Server工具中,批量分隔符是「GO
」。然而,這是可以通過工具配置的東西,因此你會偶爾遇到奇怪的人,然後誰使用別的東西。
批處理不屬於TSQL,它們是SQL Management Studio編輯器的一個功能。因此,例如,您不能提交帶有「GO」的ADO.NET命令對象作爲命令文本的一部分。
批處理標記 - 「GO」指示查詢編輯器在執行過程中繼續執行之前將SQL提交到該點。
可以將查詢編輯器配置爲在「GO」旁邊使用不同的批處理標記,但這隻會讓人感到困惑。
他們是TSQL的一部分。您也可以在ADO.NET中使用多個命令發送批處理。 – erikkallen 2009-11-10 19:10:02
我相信你錯了。這是GO命令上的MSDN TSQL參考頁面:http://msdn.microsoft.com/en-us/library/ms188037.aspx – 2009-11-10 20:37:05
關於第二個想法,我明白你的意思。原始問題中的批處理定義是正確的,批處理會影響TSQL語句的執行。 – 2009-11-10 20:45:04
從聯機叢書
創建默認值,CREATE FUNCTION,CREATE PROCEDURE,創建規則,創建架構CREATE TRIGGER和CREATE VIEW語句不能在一個批處理中的其它語句組合。 CREATE語句必須啓動批處理。該批處理中的所有其他語句都將被解釋爲第一個CREATE語句定義的一部分。
無法更改表格,然後在同一批次中引用新列。
由此可以推斷,在嘗試使用它們之前,需要多個批次以確保數據庫結構更改生效。
這個問題只與tsql有關?聞起來有點像功課... – 2009-11-09 21:16:23
看到標籤。 TSQL。 – 2009-11-09 21:18:53
這不是作業 – carewithl 2009-11-10 18:37:10