SQL Server 中 GO 的作用

CREATE DATABASE MyDatabase;
USE MyDatabase;
GO
--定义局部变量
DECLARE @s_no varchar(8), @s_avgrade numeric(4,1);
--对局部变量赋值
SET s_no = '20170208';
SET @s_avgrade = 95.0;
--使用局部变量
UPDATE student SET s_avgrade = @s_avgrade
WHERE s_no = @s_no;

🌟 GO 的作用

  • GO 不是 SQL 语言的标准关键字。
  • 它是 SQL Server 的 批处理分隔符(batch separator)
  • 它用于 告诉客户端工具(比如 SSMS、sqlcmd)“前面的 SQL 命令已经写完,可以一起提交到 SQL Server 引擎去执行了。”
  • 当客户端工具遇到 GO 时,会把它前面的所有 SQL 语句一起发送给 SQL Server 执行。
  • GO 本身不会被发给数据库引擎执行。

🌰 简单理解:

你可以把 GO 想象成:

“好啦,这一组 SQL 我写完了,你赶快去执行吧!”


🚩 在该例中:

CREATE DATABASE MyDatabase;
USE MyDatabase;
GO

这里的 GO 的作用是:
✅ 告诉 SQL Server 客户端:前面的 CREATE DATABASEUSE 命令可以一起提交并执行了。
✅ 之后的 DECLARESET 等会作为新的一批 SQL 命令。


⚠ 注意:

如果你不写 GO,在某些工具中可能:

  • USE MyDatabase; 不会立即生效,后续语句可能还在原数据库上执行。
  • 没有批处理的边界,可能导致语句解析顺序出错。

🌟 总结

GO 作用:

  • 分隔 SQL 批处理。
  • 告诉客户端“提交这一批去执行”。
  • 不会被 SQL Server 数据库引擎当作语句执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值