sql - SQL中“GO”语句的真正作用?
问题描述
我听说该GO
语句将 SQL 中的命令批次分开。并且CREATE
事务应该是批次上的唯一查询。
但是当我尝试时:
Create database dbTest
Create table tbSomething(ID int primary key,Name varchar(30))
GO
输出仍然是成功的。
那么GO
Statement 是如何影响 SQL 批处理的呢?
解决方案
GO
用于将一个脚本分成多个批次。
这个词GO
不是一个sql语句。SQL 批处理器(例如 SSMS)可以理解它,而不是 SQL Server。
简而言之,如果单独GO
出现在一行上,SSMS 会将每个分隔的部分GO
作为单独的批次发送。SQL Server 永远不会看到这些GO
行,只有它们之间的 SQL。
由于 SQL Server 有一条语法规则,即必须在批处理中单独定义存储过程,因此您经常会找到GO
用于分隔批处理的数据库创建脚本,以便可以从一个脚本创建多个存储过程。然而,理解GO
和划分批次的是客户端软件,而不是 SQL 服务器。
推荐阅读
- javascript - 为什么隐藏和显示密码功能无法正常工作?
- java - 如何打破 kotlin when 子句?
- python - 创建列 df[New_column] 并根据 pandas 中的其他多列值写入是/否
- gekko - 关于延迟完全不同的 CV 的 cv_wgt_start
- matlab - 更改 matlab .fig 的刻度值
- flutter - Flutter 中使用 TextField 和 Button 创建消息气泡
- python - 获取不和谐频道的所有连接成员
- java - 使用 Lombok @SLF4J 注释 - 如何在日志行的开头添加日期\时间?
- javascript - WebView 不会在 android studio 中播放任何声音
- json - Ruby:读取大型 JSON 文件而不会在 JSON 中发生内存泄漏