pen*_*ake 10 t-sql batch-file sql-server-2008
我正在尝试DROP存储过程,如果它存在,然后通过这样方式创建它:
IF OBJECT_ID('[dbo].[myStoredProc]') IS not NULL
DROP PROCEDURE dbo.myStoredProc
CREATE PROCEDURE [dbo].[myStoredProc]
(
@parameter1 BIT
) AS
IF @parameter1 = 1
BEGIN
....
Run Code Online (Sandbox Code Playgroud)
但它抱怨说:
"CREATE PROCEDURE必须是批次中唯一的声明"
问题:如何修复脚本以克服这个问题?
小智 17
您需要go在第一个逻辑批次结束时放置一个.
IF OBJECT_ID('[dbo].[myStoredProc]') IS not NULL
DROP PROCEDURE dbo.myStoredProc
go -- you need to add the batch-terminator 'go'
CREATE PROCEDURE [dbo].[myStoredProc]
(
@parameter1 BIT
) AS
IF @parameter1 = 1
BEGIN
..
Run Code Online (Sandbox Code Playgroud)
在语句后添加GOIF表明这是第一个查询批处理的结束.
在这里阅读更多:
http://msdn.microsoft.com/en-us/library/ms188037.aspx
IF OBJECT_ID('[dbo].[myStoredProc]') IS not NULL
DROP PROCEDURE dbo.myStoredProc
GO
Run Code Online (Sandbox Code Playgroud)
这样可以防止您的错误发生.
| 归档时间: |
|
| 查看次数: |
16839 次 |
| 最近记录: |