相当于GO

我正在尝试编写T-SQL脚本来创建数据库和相应的表。我遇到了一个问题,其中USE语句抱怨我刚刚创建的数据库不存在。如果我在SQL Server Management Studio中运行脚本,以便可以使用GO语句,则不会出现此问题。

是否有可以用来确保CREATE DATABASEUSE之前被执行的GO的T-SQL?

我尝试了BEGIN / COMMIT TRANSactIONBEGIN / END,但它们没有帮助。

calvin1 回答:相当于GO

  

是否有T SQL等效的GO,可以用来确保在USE前执行CREATE DATABASE?

是的。动态SQL。每个动态SQL调用都是作为单独的批处理进行解析,编译和执行的。

EG:

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

请注意,在动态SQL use database中使用时,仅更改动态批处理的数据库上下文。当控制权返回到调用批处理时,将还原数据库上下文。

,

在C#中,您应该为每个批次使用对SqlComand的单独调用。
高级步骤。

  1. 打开与主机的连接。
  2. 创建新数据库(只需创建数据库语句)。
  3. 代替USE调用SqlConnection.ChangeDatabase(String)方法
  4. 执行剩余批次
本文链接:https://www.f2er.com/2984646.html

大家都在问