萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> SQLServer中批處理的知識點

SQLServer中批處理的知識點

   批處理是一個邏輯單元的一組T-sql語句。

  為了將一個腳本分為多個批處理,可以使用GO語句。

  1. GO語句必須自成一行。

  2. GO語句使得每個批處理是單獨發送到服務器的,與其他的批處理器無關。(這裡面的執行方案很可能是並發的,所以在很多的情況下,可能需要考慮順序問題)

  3. GO語句不是T-sql命令,而是由各種SQLServer命令適用成型的識別命令。

  批處理中的錯誤:

  1. 語法錯誤,在執行之前就會被檢測。

  2. 運行時錯誤,只能在運行之後(或者之中)被檢測到,一般是違反了完整性等錯誤。

  要求有自己批處理的語句:

  1. Create Default

  2. Create Procedure

  3. Create Rule

  4. Create Trigger

  5. Create View

  注:如果想在單獨的腳本中將這些語句組合,則需要通過使用GO語句來將它們分散到各自的批處理中。

  EXEC的陷阱:

  1. Exec和調用它的代碼都在單獨的作用域下運行——也就是說,調用代碼不能引用EXEC語句中的變量,並且在調用代碼中的變量被解析為用於EXEC語句的字符串之後,EXEC不能引用這些變量。如果需要在動態SQL和調用它的例程間傳遞值,考慮使用SQL-executeSQL。

  2. 默認情況下,EXEC在當前用戶的安全上下文下運行——而不是調用對象的安全上下文。(對象經常在對象所有者的上下文運行,而不是當前用戶)

  3. EXEC與調用對象運行在相同的連接和事務環境下。

  4. 對EXEC字符串執行的要求函數調用的串聯必須先於實際調用的EXEC的語句——不能在執行EXEC調用的相同語句中執行函數串聯。

  5. EXEC不能再用戶自定義函數內使用。

copyright © 萬盛學電腦網 all rights reserved