VS2010 SQL2008数据库部署脚本中的DefaultDataPath为空

时间:2011-11-17 00:43:16

标签: visual-studio-2010 sql-server-2008 database-project

我有一个指向SQL2005数据库的VS2010数据库项目。当我部署它时,它会正确地从SQL实例中获取DefaultDataPath,一切正常。

今天,我将项目类型从SQL205更改为SQL2008,并将部署属性更改为指向我的SQL2008服务器。但是,现在当我尝试部署时,我收到此错误:

Error SQL01268: .Net SqlClient Data Provider: Msg 5105, Level 16, State 2, Line 1 A file activation error occurred. The physical file name '\AutoDeployedTRS.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation.

Error SQL01268: .Net SqlClient Data Provider: Msg 1802, Level 16, State 1, Line 1 CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

An error occurred while the batch was being executed.

此错误的原因是VS创建的SQL脚本包含以下三行:

:setvar DatabaseName "AutoDeployedTRS"
:setvar DefaultDataPath "\"
:setvar DefaultLogPath "\"

如果我检查SQL实例属性(通过UI或通过阅读注册表),它们设置正确,因此看起来VS2010由于某种原因无法接收它们。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尝试转到位置架构对象\数据库级对象\存储\文件 可以找到两个文件:
打开文件[your_database_name] .sql并生成参数     FILENAME = '$(DefaultDataPath)$(DatabaseName).mdf'
然后打开文件[your_database_name] _log.sql并生成参数     FILENAME = '$(DefaultDataPath)$(DatabaseName)_log.ldf'
之后尝试部署您的项目。现在,根据当前目标数据库路径在部署期间定义此参数。希望它会对你有所帮助。