簡體   English   中英

相當於 GO 的 T-SQL

[英]T-SQL equivalent of GO

我正在嘗試編寫一個 T-SQL 腳本來創建一個數據庫和相應的表。 我遇到了一個問題, USE語句抱怨我剛剛“創建”的數據庫不存在。 如果我在 SQL Server Management Studio 中運行腳本以便可以使用GO語句,則不會出現此問題。

是否有與 GO 等效的 T-SQL 可用於確保在USE之前執行CREATE DATABASE

我試過BEGIN / COMMIT TRANSACTIONBEGIN / END但它們沒有幫助。

是否有與 GO 等效的 T-SQL 可用於確保在 USE 之前執行 CREATE DATABASE?

是的。 動態 SQL。 每個動態 SQL 調用都作為單獨的批處理進行解析、編譯和執行。

例如:

exec ('
create database foo
 ')
exec ('
use foo
create table bar(id int)
')

請注意,在動態 SQL 中use database僅更改動態批處理的數據庫上下文。 當控制返回到調用批處理時,數據庫上下文被恢復。

在 C# 中,您應該為每個批處理使用單獨的 SqlComand 調用。
高級步驟。

  1. 打開與 master 的連接。
  2. 創建新數據庫(只需創建數據庫語句)。
  3. 而不是 USE 調用 SqlConnection.ChangeDatabase(String) 方法
  4. 執行剩余批次

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM