我正在尝试通过将过程内的更新语句与GO
分开来修改过程,以便对它们进行批处理。
将多个GO
放在end try catch中是否合法?我问的原因是因为当我对程序执行ALTER
语句时,没有任何反应。它只是执行而不是停止。
USE [CRM_Staging]
GO
/****** Object: StoredProcedure [dbo].[CustomerProduct_Import] Script Date: 04/10/2014 12:38:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CustomerProduct_Import]
(
@LogId UNIQUEIDENTIFIER = NULL
)
AS
BEGIN
BEGIN TRY
select.....
go
update...
go
update...
go
END TRY
BEGIN CATCH
END CATCH
RETURN 1 --@Success
END
我也有曲线,"expecting conversation"
我做错了什么?
完整的脚本在这里: http://pastebin.com/WDmqwn2N
答案 0 :(得分:3)
GO是一个批处理分隔符。存储过程中的第一个GO结束过程的定义,在GO之后的所有内容都不被视为过程的一部分。你不能在程序中使用GO。
所以,无论你想做什么,都不是正确的方法。