SQL Server:我需要在批次之间使用GO语句吗?
发布时间:2020-12-12 16:32:26 所属栏目:MsSql教程 来源:网络整理
导读:我看到人们在批处理SQL代码之间使用GO语句,但是AFAICS并不是强制性的(SQL Server 2008).在批处理/ SQL语句集之间使用GO语句有什么好处? 解决方法 它们并不是严格要求的 – 它们只是SQL Server Management Studio现在执行语句的说明,然后继续执行. GO不是T-SQ
我看到人们在批处理SQL代码之间使用GO语句,但是AFAICS并不是强制性的(SQL Server 2008).在批处理/ SQL语句集之间使用GO语句有什么好处?
解决方法它们并不是严格要求的 – 它们只是SQL Server Management Studio现在执行语句的说明,然后继续执行. GO不是T-SQL关键字或任何东西 – 这只是一个在SSMS中有效的指令.有时,你需要一个GO – 例如如果您向列中添加列,然后再次选择它,则需要在列的添加和查询之间有一个GO. 例如.如果您尝试执行此操作,您将收到SSMS的错误: ALTER TABLE (sometable) ADD DateTimeStamp DATETIME SELECT ID,DateTimeStamp FROM (sometable) WHERE ID > 5 结果是:
要点是:SSMS正在尝试一次验证整个语句,但是在SELECT语句上,它会抱怨丢失的DateTimeStamp列. ALTER TABLE (sometable) ADD DateTimeStamp DATETIME GO SELECT ID,DateTimeStamp FROM (sometable) WHERE ID > 5 如果你在两个语句之间放置一个GO,那么它将会工作,因为SSMS将不会提前解析和验证整个语句 – 它会做第一部分,然后只解析第二部分(在GO之后). 但除了这种情况之外,GO几乎不需要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |