'创建/更改程序'必须是查询批处理中的第一个语句

时间:2016-12-21 05:10:46

标签: sql-server stored-procedures

我正在尝试在数据库中创建一个名为DB_Interface的存储过程,如下所示:

USE [DB_Interface]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE OR ALTER PROCEDURE [dbo].[ProcToCCreate]

它抛出错误:

  

Msg 156,Level 15,State 1,Line 6
  关键字' OR'附近的语法不正确。

     

Msg 111,Level 15,State 1,Line 10
  '创建/更改程序'必须是查询批处理中的第一个语句。

这是我的第一个存储过程 - 不确定我是否不能像我使用它一样使用CreateAlter。非常感谢任何帮助

3 个答案:

答案 0 :(得分:4)

CREATE OR ALTER  PROCEDURE [dbo].[ProcToCCreate]
AS
RETURN;

允许(可能)SQL-Server 2016中的语法(仅在SQL-Server 2016 SP1上测试)

答案 1 :(得分:2)

CREATE  PROCEDURE [dbo].[ProcToCCreate]

OR

CREATE  PROC [dbo].[ProcToCCreate]

只是SQL Server中的有效语法。

如果你想要ALTER程序,这里是语法

 ALTER  PROCEDURE [dbo].[ProcToCCreate]

答案 2 :(得分:1)

创建

USE [DB_Interface]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[ProcToCCreate]

AS

RETURN

<强> ALTER:

    USE [DB_Interface]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    ALTER PROCEDURE [dbo].[ProcToCCreate]

    AS

    RETURN