T-SQL笔记6:GO

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

T-SQL笔记6:GO

本章摘要:无

 

     GO向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。

     语法:GO [count]

count

为一个正整数。GO 之前的批处理将执行指定的次数。

      GO 不是 Transact-SQL 语句;它是可由 sqlcmd 和 osql 实用工具以及 SQL Server Management Studio 代码编辑器识别的命令。

      SQL Server 实用工具将 GO 解释为应该向 SQL Server 实例发送当前批 Transact-SQL 语句的信号。当前批语句由上一 GO 命令后输入的所有语句组成,如果是第一条 GO 命令,则由即席会话或脚本开始后输入的所有语句组成。

      GO 命令和 Transact-SQL 语句不能在同一行中。但在 GO 命令行中可包含注释。

      用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。

USE AdventureWorks2008R2;
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- @MyMsg is not valid after this GO ends the batch.

-- Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO

SELECT @@VERSION;
-- Yields an error: Must be EXEC sp_who if not first statement in 
-- batch.
sp_who
GO


      SQL Server 应用程序可以将多个 Transact-SQL 语句作为一个批发送到 SQL Server 的实例来执行。然后,该批中的语句被编译成一个执行计划。程序员在 SQL Server 实用工具中执行特殊语句,或生成 Transact-SQL 语句的脚本在 SQL Server 实用工具中运行时,使用 GO 作为批结束的信号。

      如果基于 ODBC 或 OLE DB API 的应用程序试图执行 GO 命令,会收到语法错误。SQL Server 实用工具从不向服务器发送 GO 命令。

 

示例:

     以下示例创建两个批。第一个批只包含一条 USE AdventureWorks2008R2 语句,用于设置数据库上下文。其余的语句使用局部变量。因此,所有局部变量声明必须组成一个批。为此,必须在最后一条引用此变量的语句之后才使用 GO 命令。

 

USE AdventureWorks2008R2;
GO
DECLARE @NmbrPeople int
SELECT @NmbrPeople = COUNT(*)
FROM Person.Person;
PRINT 'The number of people as of ' +
      CAST(GETDATE() AS char(20)) + ' is ' +
      CAST(@NmbrPeople AS char (10));
GO

本文转自最课程陆敏技博客园博客,原文链接:http://www.cnblogs.com/luminji/archive/2010/10/19/1855422.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
go 通过sql操作mysql
go 通过sql操作mysql
27 1
|
2月前
|
SQL JSON Go
Go - 基于 GORM 获取当前请求所执行的 SQL 信息
Go - 基于 GORM 获取当前请求所执行的 SQL 信息
41 3
|
2月前
|
SQL 关系型数据库 MySQL
Go语言中进行MySQL预处理和SQL注入防护
在现代Web应用开发中,安全性至关重要。SQL注入是一种常见的攻击方式,攻击者可通过构造特殊SQL查询来非法访问或修改数据库数据。本文介绍如何利用Go语言中的预处理SQL语句来防范此类攻击。预处理不仅能提升安全性,还能提高性能并简化代码。通过使用`?`作为占位符,Go自动处理参数转义,有效避免SQL注入。此外,文章还提供了连接MySQL数据库、执行预处理查询以及最佳实践的示例代码。务必遵循这些指导原则,确保应用程序的安全性。
39 0
|
2月前
|
SQL 关系型数据库 MySQL
【go笔记】使用sqlx操作MySQL
【go笔记】使用sqlx操作MySQL
|
2月前
|
Go
【go笔记】标准库-strconv
【go笔记】标准库-strconv
|
2月前
|
网络协议 前端开发 Go
[go笔记]websocket入门
[go笔记]websocket入门
|
2月前
|
网络协议 Go
【go笔记】简单的http服务
【go笔记】简单的http服务
|
2月前
|
网络协议 Go
【go笔记】TCP编程
【go笔记】TCP编程
|
2月前
|
Go 索引
【go笔记】标准库-strings
【go笔记】标准库-strings
|
2月前
|
Go
【go笔记】目录操作
【go笔记】目录操作
下一篇
无影云桌面