【问题标题】:CREATE DATABASE fails using VSDBCMD使用 VSDBCMD 创建数据库失败
【发布时间】:2011-09-05 14:01:14
【问题描述】:

尝试使用 VSDBCMD 工具部署 VS2010 数据库项目时,出现以下错误:

SQL01268 .Net SqlClient Data Provider: Msg 5133, Level 16, State 1, Line 1 Directory lookup for the file "D:\MSSQL10_50\MSSQL10_50.MSSQLSERVER\MSSQL\Data\Data.mdf" failed with the operating system error 21(failed to retrieve text for this error. Reason: 1815).
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.

但是,如果我使用 VSDBCMD 生成的 SQL 脚本并在 SQL Management Studio 中运行它,它就可以正常工作。同样,我可以在 Mgt Studio 中手动创建 DB。

“操作系统错误 21”显然是“设备未就绪”,但这对我来说似乎是虚假的……文件夹路径都是正确的,解锁文件夹的安全性并不能解决问题(例如“每个人”>完全控制)。此外,服务器上的 SQL 日志或事件查看器中没有错误。

在命令行运行 VSDBCMD 和通过 Management Studio 运行相同的 SQL 脚本有什么不同??

欢迎提出任何想法!

克里斯

【问题讨论】:

  • 一点进程监视器最终解决了这个问题……当我在目标机器上看不到任何文件系统活动时,警报响了。事实证明,当创建文件的驱动器实际上不存在时会引发此错误...我在连接字符串中使用了错误的服务器名称!
  • 回答你自己的问题,克里斯!这是允许的。

标签: visual-studio-2010 sql-server-2008 vsdbcmd


【解决方案1】:

根据我自己的 cmets,这个错误是因为驱动器实际上并不存在。

【讨论】:

    【解决方案2】:

    如果您在基于 dbschema 的服务器中使用 vsdbcmd 创建数据库,最好设置数据和日志文件的路径位置。

    更改 .dbschema 文件中的日志路径位置:

    <Element Type="ISql90File" Name="[YOUR_DATABASE_NAME_Data]">
        <Property Name="FileName" Value="E:\YOUR DATA FOLDER\$(DatabaseName)_Data.MDF" />
    
    <Element Type="ISql90File" Name="[YOUR_DATABASE_NAME_Log]">
        <Property Name="FileName" Value="E:\YOUR LOGS FOLDER\$(DatabaseName)_Log.LDF" />
    

    然后使用命令提示符将其导入 Sql Server:

    CD\
    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VSTSDB\Deploy\vsdbcmd.exe" /a:Deploy 
    /cs:"Server=YOUR_SERVER\YOUR_INSTANCE;User Id=YOUR_USER;Password=YOUR_PASS;Pooling=false" 
    /dsp:Sql /dd+ /model:"C:\FOLDER\YOUR_DBSCHEMA_FILE.dbschema" 
    /p:TargetDatabase="YOUR_DATABASE_NAME"
    

    关于 vsdbcmd 的更多信息:http://msdn.microsoft.com/en-us/library/dd193283.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多