小编sha*_*rad的帖子

在 SQL Server 上的 else 块中创建过程

我有一个 SQL 脚本,在其中生成数据库及其表、存储过程、视图等。我使用以下脚本生成数据库和所有内容。我能够生成表,但在存储过程中它给出了一个错误:

'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.'
Run Code Online (Sandbox Code Playgroud)

这是代码。我使用了一个if/else块,所以不能使用一个go语句。我检查数据库是否存在并采取适当的措施。任何人都有解决方案?

编辑后:

    IF EXISTS(SELECT name FROM sys.databases WHERE name = 'SampleDB')
        begin
        PRINT 'Exist.'
        end
        Else
        begin
        CREATE DATABASE SampleDB
        exec sp_dboption N'SampleDB', N'autoshrink', N'false'
        exec sp_dboption N'SampleDB', N'ANSI null default', N'false'
        exec sp_dboption N'SampleDB', N'recursive triggers', N'false'
        exec sp_dboption N'SampleDB', N'ANSI nulls', N'false'
        exec sp_dboption N'SampleDB', N'concat null yields null', N'false'
        exec sp_dboption N'SampleDB', N'cursor close on commit', N'false'
        exec sp_dboption …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server stored-procedures if-not-exists

4
推荐指数
1
解决办法
8567
查看次数