IF exists(select id from sysobjects   where name='xuanke')
then
drop database xuanke;
create database xuanke
end if
else
use xuanke
这样写有错误:消息 156,级别 15,状态 1,第 2 行
关键字 'then' 附近有语法错误。
消息 156,级别 15,状态 1,第 5 行
关键字 'if' 附近有语法错误。还有个小问题,当drop database 'xuanke'多次后,数据库中的表表面上被删除了,如果select * from 表 还是可以看到数据的,这样就不得不每次都drop table 表1,drop table 表2 地执行一遍

解决方案 »

  1.   

    begin
      你的两条语句
    end
      

  2.   

    IF exists(select id from sysobjects   where name='xuanke')
    begin
    drop database xuanke;
    create database xuanke
    end else
    use xuanke
      

  3.   


    IF exists(select id from sysobjects   where name='xuanke')
    begin
    drop database xuanke;
    create database xuanke
    end 
    else
     create database xuanke
      

  4.   

    谢谢,可以了IF exists(select id from sysobjects   where name='xuanke')
    begin
    drop database xuanke
    create database xuanke
    end
    use xuanke
      

  5.   

    楼主的逻辑本身就有问题
    如果存在了,就删了后重建建立这个数据库?没有这个数据库的话,执行use xuanke,没有这个数据库,怎么能user xuanke呢?
      

  6.   

    IF exists(select * from sysdatabases where name='xuanke')
    begin 
    drop database xuanke 
    create database xuanke
    end use xuanke
    go
      

  7.   

    IF exists(select * from master..sysdatabases where name='xuanke')
    begin 
    drop database xuanke 
    create database xuanke
    end 
    else
    begin
    create database xuanke
    end use xuanke
    go
      

  8.   

    菜鸟,见笑了,另外一个问题呢?
    drop database 数据库 不能完全删除数据
    现在每次执行都出现错误:
    消息 2627,级别 14,状态 1,第 18 行
    违反了 PRIMARY KEY 约束 'PK__学生表__7C8480AE'。不能在对象 'dbo.学生表' 中插入重复键。
    IF exists(select id from sysobjects   where name='xuanke')
    begin
    drop database xuanke;
    end
    create database xuanke;
    use xuanke
      

  9.   

    IF exists(select id from sysobjects   where name='xuanke')
    BEGIN 
    drop database xuanke
    GO
    create database xuanke
    end 
    else
    BEGIN
    use xuanke
    GO
    END
      

  10.   

    哥们 你的xuanke是表还是数据库啊
      

  11.   

    -- =============================================
    -- Basic Create Database Template
    -- =============================================
    IF EXISTS (SELECT * 
       FROM   master..sysdatabases 
       WHERE  name = N'<database_name, sysname, test_db>')
    DROP DATABASE <database_name, sysname, test_db>
    GOCREATE DATABASE <database_name, sysname, test_db>
    GO
      

  12.   

    drop database 数据库 不能完全删除数据 
    现在每次执行都出现错误: 
    消息 2627,级别 14,状态 1,第 18 行 
    违反了 PRIMARY KEY 约束 'PK__学生表__7C8480AE'。不能在对象 'dbo.学生表' 中插入重复键。只能说明你是在另外一个数据库的表中插入数据
      

  13.   

    谢谢众位高手!原来是select * from master..sysdatabases where name='xuanke'这个的原因.还有个问题:
    无法删除数据库 "xuanke",因为该数据库当前正在使用
    这样只好将这个sql文件关闭再重新打开,有没有办法每次执行都不让这个问题出现
      

  14.   

    好像有个过程KILL进程的,要不直接停止服务呀