相关疑难解决方法(0)

GO在SQL Server Management Studio和Transact SQL中有什么用?

使用右键单击"脚本为"菜单创建查询时,SQL Server Management Studio始终插入GO命令.为什么?GO实际上做了什么?

t-sql sql-server ssms

337
推荐指数
8
解决办法
24万
查看次数

什么是"批次",为什么使用GO?

我已阅读并阅读过MSDN等等.好的,它标志着一批的结束.

什么定义批次?当我粘贴一堆脚本同时运行时,我不明白为什么我需要去.

我从未理解过GO.任何人都可以更好地解释这个,当我需要使用它(在多少或什么类型的交易之后)?

例如,为什么每次更新后我都需要GO:

 UPDATE [Country]
   SET [CountryCode] = 'IL'
 WHERE code = 'IL'

 GO

 UPDATE [Country]
   SET [CountryCode] = 'PT'
 WHERE code = 'PT'
Run Code Online (Sandbox Code Playgroud)

t-sql

132
推荐指数
4
解决办法
6万
查看次数

SQL Server:我是否需要在批次之间使用GO语句?

我见过人们在批量的SQL代码之间使用GO语句,但是AFAICS并不是强制性的(SQL Server 2008).批处理/ SQL语句集之间使用GO语句有什么好处?

sql sql-server sql-server-2005 sql-server-2008

17
推荐指数
1
解决办法
8456
查看次数

更新时态表历史

我在更新MS SQL Server 2016中的时态历史记录表中的行时遇到问题。

从文档中,需要执行的步骤如下:

  1. 禁用系统版本控制
  2. 修改历史记录表
  3. 再次启用系统版本控制

我尝试创建一个执行此操作的过程,但收到此错误:

消息13561,级别16,状态1,第23行无法更新时间历史表'db.dbo.FooHistory'中的行。

这是我的SQL:

CREATE TABLE Foo(
    id int primary key not null
    , title nvarchar(50) not null
    , startTime datetime2 GENERATED ALWAYS AS ROW START NOT NULL
    , endTime datetime2 GENERATED ALWAYS AS ROW END NOT NULL
    , PERIOD FOR SYSTEM_TIME (startTime, endTime) )

ALTER TABLE Foo
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.FooHistory));

GO

CREATE PROCEDURE [dbo].[UpdateFooHistory] AS
  BEGIN
    SET NOCOUNT ON

    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    BEGIN TRANSACTION;
    ALTER TABLE …
Run Code Online (Sandbox Code Playgroud)

sql-server

6
推荐指数
2
解决办法
1942
查看次数

标签 统计

sql-server ×3

t-sql ×2

sql ×1

sql-server-2005 ×1

sql-server-2008 ×1

ssms ×1