基本上在我的sql脚本中,我想通过提供存储其.mdf文件的显式位置来创建数据库[DATABASE_NAME]?但问题是,我必须在%HOMEPATH%目录中创建.mdf文件,即C:/ users / [username],我找不到在sql中读取环境变量的方法。有什么办法可以把脚本写成
CREATE DATABASE [DATABASENAME] ON PRIMARY (NAME = 'DatabaseName',
FILENAME = '%HOMEPATH%\DatabaseName.mdf'
答案 0 :(得分:0)
如果您使用sqlcmd
来运行脚本,则可以按如下方式使用环境变量:
CREATE DATABASE [DATABASENAME] ON PRIMARY (NAME = 'DatabaseName',
FILENAME = '$(HOMEDRIVE)$(HOMEPATH)\DatabaseName.mdf')
HOMEPATH
环境变量不包含驱动器号; HOMEDRIVE
指定了。或者您可以使用包含两者的$(USERPROFILE)
。
请注意,SQL Server服务不太可能具有写入该位置的正确访问权限,因此可能会因“拒绝访问”错误而失败(操作系统错误5)。
答案 1 :(得分:-1)
这是因为斜杠,你应该尝试使用反斜杠,而你的目录则是HOMEPATH/DatabaseName.mdf