Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 是什么原因引起的;SQL01268:消息1834:无法覆盖。“数据库”正在使用它;?(在数据库项目中)_Sql Server_Visual Studio_Visual Studio 2010_Sql Server Express_Schema Compare - Fatal编程技术网

Sql server 是什么原因引起的;SQL01268:消息1834:无法覆盖。“数据库”正在使用它;?(在数据库项目中)

Sql server 是什么原因引起的;SQL01268:消息1834:无法覆盖。“数据库”正在使用它;?(在数据库项目中),sql-server,visual-studio,visual-studio-2010,sql-server-express,schema-compare,Sql Server,Visual Studio,Visual Studio 2010,Sql Server Express,Schema Compare,下面的完整错误: 错误1 SQL01268:.Net SqlClient数据提供程序:Msg 1834,级别16,状态1,第1行无法覆盖文件“C:\Program Files\Microsoft SQL Server\MSSQLS10.SQLEXPRESS\MSSQL\Data\testdatabase.mdf”。数据库“testdatabase”正在使用它。方案比较5 25 0 我在一些论坛上读到过这篇文章,很多人都了解到了这一点,可能有些人认为这与数据库的文件路径名参数化等有关,或者在进行比

下面的完整错误:

错误1 SQL01268:.Net SqlClient数据提供程序:Msg 1834,级别16,状态1,第1行无法覆盖文件“C:\Program Files\Microsoft SQL Server\MSSQLS10.SQLEXPRESS\MSSQL\Data\testdatabase.mdf”。数据库“testdatabase”正在使用它。方案比较5 25 0

我在一些论坛上读到过这篇文章,很多人都了解到了这一点,可能有些人认为这与数据库的文件路径名参数化等有关,或者在进行比较之前勾选“忽略文件名和文件及日志文件的路径”——我试着没有用

有相同/类似问题的其他人:

基本上对我来说,不管我使用哪个数据库作为目标和源,我都会遇到这个错误。假设即使我创建了一个包含一个表的新数据库和另一个不包含表和不同名称的数据库,并尝试使用带有单个表的db更新不包含表的数据库的模式,它仍然会给我错误。几乎就像SQLServerExpress疯了一样。我记得以前使用过模式比较工具,没有遇到任何问题。创建了所有数据库连接,尝试了许多方法,但都没有效果,例如:指向另一个文件夹中的*.mdf db副本,或从程序文件中mysql目录的数据文件夹中删除内容等

还相信我读到有人解决了类似的问题,删除了一些文件的计划
比较工具创建,认为它们是*.sql类型,但不确定是哪一个。

问题出现了,因为数据库文件已经存在

在VisualStudio数据库项目中尝试以下操作

创建模式比较

转到菜单:数据>架构比较>导出到>编辑器

创建脚本后,删除添加物理文件的alter database命令。然后创建一个连接,切换到SQLCMD模式(确保关注脚本)并执行脚本


要切换到SQLCMD模式访问:数据>Transact-SQL编辑器>SQLCMD模式

如果目标数据库已经存在,只需在首次部署之前先通过Management Studio删除即可

在VS中通过SQL Server 2008向导创建数据库项目时,在建立原始连接时,我已经通过SQL Server Management Studio手动创建了数据库。在检测到数据库存在之前,它不允许我继续。然后,当我第一次进入部署步骤时,它抛出了与上面相同的错误。我刚进入ManagementStudio并删除了数据库,然后尝试部署,结果很好。有趣的是,它现在每次都在部署,而我每次都不必进去删除它

      RESTORE DATABASE B FROM DISK = 'A.bak'
      WITH MOVE 'DataFileLogicalName' TO 'C:\SQL Directory\DATA\B.mdf',
      MOVE 'LogFileLogicalName' TO 'C:\SQL Directory\DATA\B.ldf',
      REPLACE     ---> Needed if database B already exists