0
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- USP_TEST_SELECT
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'usp_test_select' AND type = 'P')
    DROP PROCEDURE usp_test_select
GO
CREATE PROCEDURE usp_test_select
    @id         int 
AS
BEGIN
    SET NOCOUNT ON;
    SELECT * FROM MY_TABLE mt WHERE mt.id = @id
END
GO
-- **********************************************

.ExecuteStoreCommandこのスクリプトをテキストファイルから読み取り、EF (またはEFの他の実行メソッド)を使用して実行したいと思います。

例外がスローされます:

System.Data.SqlClient.SqlException(0x80131904):「GO」の近くの構文が正しくありません。
'CREATE / ALTER PROCEDURE'は、クエリバッチの最初のステートメントである必要があります。

私が実行しているスクリプト(テキストファイル)はSQL Server Management Studioによって生成され、そこで実行されると正常に実行されます。

4

1 に答える 1

1

GOは有効な ではありませんT-SQL statement。SQL Management Studio でのみ使用されます。動的作成 SQL を使用するようにコードを変更します。例:

If exists (condition) then exec('create procedre..')
于 2013-02-12T22:48:30.053 に答える