创建数据库时,文件路径出错 没人懂阿? 我现在改成硬编码, 已经创建好了数据库!希望有懂T-SQL解析器的高手解答一下小弟的疑惑! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好好看看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 ) --用[]括起来后,那些信息已经是做为对象名,而不是变量了--你可以把你的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..sysdatabasesselect * from [@CurrentDBName]..sysfiles --正确的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 )')endGO 哦, 谢了, 能解释下为什么不能用变量吗?以微软的实力不至于编个不支持变量的DDL SQL语句! 不支持就是不支持,这点在create database的语法上写得很明白不是什么都需要支持,关键是看有没有需要 请帮我看一下这样条件的SQL、HQL语句如何写 sqlerver中列名为[count] []这个大括号怎么也去不了? 关于SQL server2000数据库迁移的问题 如何在百万级的数据中快速的搜索 如何在PROC中用like关键字? 怎么优化递归表查询? 速度慢 另一个SQL算法问题 动态求库存 大家看看这段Sql语句为什么出错?困绕我几天的问题了:( 在vfp中怎么样控制打印机,比如用自己的程序控制“无纸、没联机、走纸、打印进度 用VB清理大量历史数据时(几千万条记录),会因日志文件过大而出现磁盘空间不足,可以办法解决。 如何在命令提示符中用OSQL工具登录本地数据库?
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
)
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
-----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