如何在SQL Server中访问任何环境变量,如%HOMEPATH%?

时间:2014-07-14 12:44:54

标签: sql-server environment-variables

基本上在我的sql脚本中,我想通过提供存储其.mdf文件的显式位置来创建数据库[DATABASE_NAME]?但问题是,我必须在%HOMEPATH%目录中创建.mdf文件,即C:/ users / [username],我找不到在sql中读取环境变量的方法。有什么办法可以把脚本写成

CREATE DATABASE [DATABASENAME] ON PRIMARY (NAME = 'DatabaseName',
FILENAME = '%HOMEPATH%\DatabaseName.mdf' 

2 个答案:

答案 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