2017-04-07 6 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 

に動作します。しかし、私は1行にすべてをかけるとき、それは動作しません。どうして? SQL Serverには行末のようなものがありますか? C#で?

+0

すべてを1行に入れる前にGOコマンドを分離しようとします。 –

答えて

1

GOコマンドに問題がある可能性があります。

AのTransact-SQLステートメントは、GOコマンドと同じ行を占有することはできません、単一の行に入れ(多分コメントを含める)する必要があります。ただし、行にはコメントを含めることができます。

参考リンク:MDSN GO COMMAND

ALTERからストアドプロシージャのENDにあなたが1行にそれを置くことができます。

0

オプションとして、複数の行でSQL文を定義することもできます。

string sqlCommand = @"select * from foobar 
         where ...."; 
関連する問題