当前位置: 首页 > 面试题库 >

在SQL Server中使用GO关键字

喻嘉泽
2023-03-14
问题内容

我知道使用GO关键字。它将多个语句作为一个整体发送到sql server,而不是一个一个地发送每个语句。我希望我是对的!

但我想知道程序员在实际应用中会使用它吗。就像我们创建一个存储过程一样,它也做同样的事情,它还会编译代码并制定执行计划,然后将整个组发送到服务器。

那么我们是否需要在数据库对象(例如触发器,视图,存储过程)的编码中指定GO关键字?


问题答案:

GO 是用于发信号通知批处理结束的命令。请注意,它不是T-SQL语句。

批处理 是一组从一个应用程序同时发送到SQL Server以便执行的一个或多个Transact-SQL语句

GO在SQL Server中非常有用。但是,仅在真正需要时才需要使用它。因此,您需要记住,在使用GO命令定义批处理的同时,还要 定义该 特定T-
SQL代码的范围。批处理中定义的局部变量特定于该批处理。

范围示例-

DECLARE @STRING1 AS VARCHAR(50)
DECLARE @STRING2 AS VARCHAR(50)

SET @STRING1='BATCH 2'
SET @STRING2='BATCH 3'

SELECT @STRING1 AS RESULT
GO

SELECT @STRING2 AS RESULT
GO

运行此命令会给您说未html" target="_blank">声明@ STRING2的错误。因为该变量的范围以GO结尾。因此要当心使用GO并明智地使用它。

来源-http://aartemiou.blogspot.com/2009/08/using-go-command-in-sql-
server.html



 类似资料:
  • 在Go语言中,表达式go f(x, y, z)会启动一个新的goroutine运行函数f(x, y, z)。函数f,变量x、y、z的值是在原goroutine计算的,只有函数f的执行是在新的goroutine中的。显然,新的goroutine不能和当前go线程用同一个栈,否则会相互覆盖。所以对go关键字的调用协议与普通函数调用是不同的。 首先,让我们看一下如果是C代码新建一条线程的实现会是什么样子

  • 问题内容: 我有以下 我尝试使用C#中的SQL连接运行此命令,但收到错误消息: CREATE FUNCTION’必须是查询批处理中的第一条语句。必须声明标量变量“ @input”。 如何在C#中运行它? 问题答案: 不是SQL概念;它在语法上根本不存在。 SSMS通过解析SQL并识别(和)用法来允许它,并将 您的命令分为几部分 ;然后,它们将这些片段作为独立的命令一个接一个地发布。这样做完全是由S

  • 问题内容: 当ai遇到关键字时,我正在研究Java中的方法重写。在Internet和其他来源上进行了大量搜索之后,我得出结论,当实例变量的名称与构造函数的参数相同时,将使用关键字。我是对还是错? 问题答案: 是实例中当前实例的别名或名称。它对于消除实例变量与局部变量(包括参数)的区别很有用,但它本身可以用来简单地引用成员变量和方法,调用其他构造函数重载或简单地引用 实例 。适用用途的一些示例(并非

  • 问题内容: 我试图了解java关键字的this实际作用。我一直在阅读Sun的文档,但对于this实际操作仍然不甚了解。 java 关键字 问题答案: 关键字是对当前对象的引用。 另一种思考方式是关键字就像你用来引用自己的人称代词。对于相同的概念,其他语言使用不同的词。VB使用Me和Python约定(因为Python不使用关键字,只是每个方法的隐式参数)将被使用。 如果要引用本质上属于你的对象,你将

  • 问题内容: 通过阅读文档,我了解到Python具有一个单独的函数命名空间,如果我想在该函数中使用全局变量,则需要使用global。 我正在使用Python 2.7,并且尝试了这个小测试 即使没有,看起来一切都很好global。我能够毫无问题地访问全局变量。 我有什么想念的吗?另外,以下是Python文档中的内容: 全局语句中列出的名称不得定义为形式参数,也不得在for循环控制目标,类定义,函数定义

  • 通过前面的学习我们了解到切片其实就是多个相同类型元素的连续集合,既然切片是一个集合,那么我们就可以迭代其中的元素,Go语言有个特殊的关键字 range,它可以配合关键字 for 来迭代切片里的每一个元素,如下所示: 第 4 行中的 index 和 value 分别用来接收 range 关键字返回的切片中每个元素的索引和值,这里的 index 和 value 不是固定的,读者也可以定义成其它的名字。