您的位置:首页 > 数据库 > SQL

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

2018-08-15 20:49 465 查看
批是由客户端应用程序作为一个单元发送给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




可以用来批量新增语句
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: