码迷,mamicode.com
首页 > 数据库 > 详细

T-SQL:批GO使用实例(十四)

时间:2018-08-15 21:06:33      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:cee   rdate   null   --   date   creat   style   order   bsp   

批是由客户端应用程序作为一个单元发送给SQL Server 执行的一条或多条语句  如果批中出现错误就整个批都不会交给SQL SERVER 执行

PRINT 第一批;GO
-- Invalid batch
PRINT 第二批;
SELECT custid FROM Sales.Customers;
SELECT orderid FOM Sales.Orders;
GO
-- Valid batch
PRINT 第三批;
SELECT empid FROM HR.Employees;

技术分享图片 

一起执行会发现第二批出现错误就没有提交执行

批由GO命令 隔断 

  

DECLARE @i AS INT = 10;
-- Succeeds
PRINT @i;
GO

-- Fails
PRINT @i;
GO

技术分享图片Go 隔断了 @i 变量 就会报错  

例如还有一种情况

IF OBJECT_ID(Sales.MyView, V) IS NOT NULL DROP VIEW Sales.MyView;

CREATE VIEW Sales.MyView
AS

SELECT YEAR(orderdate) AS orderyear, COUNT(*) AS numorders
FROM Sales.Orders
GROUP BY YEAR(orderdate);
GO
CREATE VIEW Sales.MyView
AS 

 技术分享图片 

技术分享图片

 

create view  必须是批中第一个语句  所以 在create view 前面 加 go命令 进行截断 

技术分享图片

 还有 在同一批中更改架构 会出现错误  需要放到两个批中

CREATE TABLE dbo.T1(col1 INT);
GO

-- Following fails
ALTER TABLE dbo.T1 ADD col2 INT;
SELECT col1, col2 FROM dbo.T1;
GO

技术分享图片

 

也可以用GO 循环运行批如:

 

print 1123
GO 5

技术分享图片

可以用来批量新增语句

 

T-SQL:批GO使用实例(十四)

标签:cee   rdate   null   --   date   creat   style   order   bsp   

原文地址:https://www.cnblogs.com/yuanzijian-ruiec/p/9483923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!