Sql server ';创建/更改程序';必须是查询批处理中的第一条语句
我试图在数据库中创建一个名为Sql server ';创建/更改程序';必须是查询批处理中的第一条语句,sql-server,stored-procedures,Sql Server,Stored Procedures,我试图在数据库中创建一个名为DB\u Interface的存储过程,如下所示: USE [DB_Interface] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE OR ALTER PROCEDURE [dbo].[ProcToCCreate] 它抛出错误: 味精156,第15级,状态1,第6行 关键字“或”附近的语法不正确 味精111,第15级,状态1,第10行 “CREATE/ALTER PROCEDURE”必须是
DB\u Interface
的存储过程,如下所示:
USE [DB_Interface]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE OR ALTER PROCEDURE [dbo].[ProcToCCreate]
它抛出错误:
味精156,第15级,状态1,第6行关键字“或”附近的语法不正确 味精111,第15级,状态1,第10行
“CREATE/ALTER PROCEDURE”必须是查询批处理中的第一条语句` 这是我的第一个存储过程-不确定我是否不能像使用它那样使用
Create
或Alter
。非常感谢您的帮助
CREATE PROCEDURE [dbo].[ProcToCCreate]
或
只有SQL Server中的语法有效
如果您想更改过程,以下是语法
ALTER PROCEDURE [dbo].[ProcToCCreate]
创建:
USE [DB_Interface]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[ProcToCCreate]
AS
RETURN
USE [DB_Interface]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ProcToCCreate]
AS
RETURN
改变:
USE [DB_Interface]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[ProcToCCreate]
AS
RETURN
USE [DB_Interface]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ProcToCCreate]
AS
RETURN
在SQL Server 2016(可能)中允许使用语法(仅在SQL Server 2016上使用SP1进行测试)在ORACLE
中可能不在MSSQL
中。对于MSSQL
您必须使用CREATE PROCEDURE[spname]或ALTER PROCEDURE[spname]
要么使用CREATE
或ALTER
关键字,这两者之前都没有尝试直接给出ALTER PROCEDURE,但它说的是无效的对象名称。我甚至刷新了本地缓存。所以我试着去创造或改变。有什么问题?ALTER-PROCEDURE[spname]
只有在存储过程存在的情况下才能工作。或者我可以直接使用ALTER-PROCEDURE吗?@trx:是的,可以。更新了我的答案。我之前试图直接给出ALTER过程,但它说的是无效的对象名。我甚至刷新了本地缓存。所以我试着去创造或改变。可能是什么原因issue@trx:您确定您的进程存在于DBDB\u接口中吗?