2017-04-07 46 views
1

存儲過程是這樣的意思工程什麼是換行的一個SQL Server存儲過程

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER PROCEDURE [dbo].[AllotTectOnBay] 
     @date datetime, 
     @AddTech [dbo].[AddTechnicianBayallotment] READONLY 
AS 
BEGIN 
    SET NOCOUNT ON; 

    begin try 
    begin transaction 

    commit transaction 
    end try 
    BEGIN CATCH 
     rollback transaction; 
     declare @ErrorMessage nvarchar(max), @ErrorSeverity int, @ErrorState int; 

     select 
      @ErrorMessage = ERROR_MESSAGE() + '' Line '' + cast (ERROR_LINE() as nvarchar(5)), 
      @ErrorSeverity = ERROR_SEVERITY(), 
      @ErrorState = ERROR_STATE(); 

     raiserror (@ErrorMessage, @ErrorSeverity, @ErrorState); 
    END CATCH 
END 
GO 

但是,當我把一切都在一行它不工作。爲什麼? SQL Server是否有類似於行結束的內容;在C#中?

+0

嘗試在將所有內容放入一行之前使用GO分隔命令 –

回答

1

問題可能在GO命令。它必須放在一行(並可能包含註釋)

Transact-SQL語句不能與GO命令佔用相同的行。但是,該行可以包含註釋。

參考鏈接:MDSN GO COMMAND

ALTER存儲過程的END你可以把它放在一行。

0

作爲選項,您還可以在多行中定義您的sql語句。

string sqlCommand = @"select * from foobar 
         where ....";