我要让else后面的语句一起执行,我用begin ..end不行,应该怎样改说白了就是如果数据存在就输出一句话,不存在就创建数据库,并要创建数据中的表,和初始化值。要修改的数据库如下if exists(select * from master.dbo.sysdatabases where name = 'mkwcrm')
begin
print '该数据库已经存在,不需要创建数据库了'
end
else
create database mkwcrm
use mkwcrm
begin 
CREATE TABLE [dbo].[Catalog] (
[CatalogID] [int] IDENTITY (1, 1) NOT NULL ,
[CatalogParentID] [int] NOT NULL ,
[CatalogName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Description] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[CatalogImg] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[CatalogOrder] [int] NOT NULL ,
[color] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]ALTER TABLE [dbo].[Catalog] ADD 
CONSTRAINT [PK_Catalog] PRIMARY KEY  CLUSTERED 
(
[CatalogID]
)  ON [PRIMARY] end

解决方案 »

  1.   

    if exists(select * from master.dbo.sysdatabases where name = 'mkwcrm') 
    begin 
      print '该数据库已经存在,不需要创建数据库了' 
    end 
    else 
    BEGIN
    create database mkwcrm;
    if exists(select * from master.dbo.sysdatabases where name = 'mkwcrm') 
    begin
    exec ('use mkwcrm;
    CREATE TABLE [dbo].[Catalog] 

    [CatalogID] [int] IDENTITY (1, 1) NOT NULL , 
    [CatalogParentID] [int] NOT NULL , 
    [CatalogName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , 
    [Description] [text] COLLATE Chinese_PRC_CI_AS NULL , 
    [CatalogImg] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , 
    [CatalogOrder] [int] NOT NULL , 
    [color] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]; 
    ALTER TABLE [dbo].[Catalog] ADD CONSTRAINT [PK_Catalog] PRIMARY KEY CLUSTERED ( [CatalogID]  ) ON [PRIMARY]; 
    ')
    end
    else print '数据库创建没有成功'
    END