没人懂阿? 我现在改成硬编码, 已经创建好了数据库!希望有懂T-SQL解析器的高手解答一下小弟的疑惑!

解决方案 »

  1.   

    好好看看create database的语法 CREATE DATABASE [@CurrentDBName]  --这里可以用变量么?
    ON 

    NAME = [@CurrentDBPrimaryMDF],   --这里可以用变量么?
           FILENAME = [@CurrentDBPath + @CurrentDBPrimaryMDF + N'.mdf'],   --这里可以用变量么?
           SIZE = 10,
               MAXSIZE = 50,
           FILEGROWTH = 5 
    )
    LOG ON

    NAME = [@CurrentDBLogLDF],   --这里可以用变量么?
           FILENAME = [@CurrentDBPath + @CurrentDBLogLDF + N'.ldf'],   --这里可以用变量么?
          SIZE = 5MB,
           MAXSIZE = 25MB,
           FILEGROWTH = 5MB 
    )
      

  2.   

    --用[]括起来后,那些信息已经是做为对象名,而不是变量了--你可以把你的filename改成固定的文件名,看看执行你的语句创建的是什么东东 CREATE DATABASE [@CurrentDBName]  --这里可以用变量么?
    ON 

    NAME = [@CurrentDBPrimaryMDF],   --这里可以用变量么?
           FILENAME ='c:\a.mdf',-- [@CurrentDBPath + @CurrentDBPrimaryMDF + N'.mdf'],   --这里可以用变量么?
           SIZE = 10,
               MAXSIZE = 50,
           FILEGROWTH = 5 
    )
    LOG ON

    NAME = [@CurrentDBLogLDF],   --这里可以用变量么?
           FILENAME = 'c:\a.ldf',--[@CurrentDBPath + @CurrentDBLogLDF + N'.ldf'],   --这里可以用变量么?
          SIZE = 5MB,
           MAXSIZE = 25MB,
           FILEGROWTH = 5MB 
    )--显示创建的是什么
    select * from master..sysdatabases
    select * from [@CurrentDBName]..sysfiles
      

  3.   

    --正确的use master------------------------------------------------------------
    -----Check whether or not Having created the database-------
    ------------------------------------------------------------
    DECLARE @CurrentDBName nvarchar(35)
    SET @CurrentDBName = N'XISES'
    DECLARE @CurrentDBPath nvarchar(255)
    SET @CurrentDBPath = N'G:\课题\XISES\data'
    DECLARE @CurrentDBPrimaryMDF nvarchar(255)
    SET @CurrentDBPrimaryMDF = N'XISESData'
    DECLARE @CurrentDBLogLDF nvarchar(255)
    SET @CurrentDBLogLDF = N'XISESLog'if not (exists (select * from dbo.sysdatabases where name = @CurrentDBName))
    begin
    EXEC(N'
    CREATE DATABASE ['+@CurrentDBName+N']
    ON 

    NAME = ['+@CurrentDBPrimaryMDF+N'],
           FILENAME = '''+@CurrentDBPath + @CurrentDBPrimaryMDF + N'.mdf'',
           SIZE = 10,
               MAXSIZE = 50,
           FILEGROWTH = 5 
    )
    LOG ON

    NAME = ['+@CurrentDBLogLDF+N'],
           FILENAME = '''+@CurrentDBPath + @CurrentDBLogLDF + N'.ldf'',
          SIZE = 5MB,
           MAXSIZE = 25MB,
           FILEGROWTH = 5MB 
    )')
    end
    GO
      

  4.   

    哦, 谢了, 能解释下为什么不能用变量吗?以微软的实力不至于编个不支持变量的DDL SQL语句!
      

  5.   

    不支持就是不支持,这点在create database的语法上写得很明白不是什么都需要支持,关键是看有没有需要