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
-- **********************************************
我从文本文件中读取此脚本,并希望使用EF .ExecuteStoreCommand
(或EF中的任何其他执行方法)运行它。
抛出异常:
System.Data.SqlClient.SqlException(0x80131904):附近的语法不正确 '走出去'。
'CREATE / ALTER PROCEDURE'必须是查询批处理中的第一个语句。
我运行的脚本(文本文件)由SQL Server Management Studio生成,如果在那里执行则成功运行。
答案 0 :(得分:1)
GO
不是有效的T-SQL statement
,它仅由SQL Management工作室使用。更改您的代码以使用动态创建sql
例如:
If exists (condition) then exec('create procedre..')