我有一个安装程序,作为安装的一部分创建一个SQL Server 2000(及以上)数据库。
有些用户更改了数据库服务器,分离数据库......并想重新安装。
如果文件存在于默认位置,则会出现以下错误:
无法创建文件'C:\ Program Files \ Microsoft SQL 服务器... \ DATA \ mydatabase.mdf” 因为它已经存在。
我可以先检查默认路径并删除文件来解决这个问题。 但是,当用户安装到远程SQL Server时,我该怎么做?
我正在寻找类似的东西:
CREATE DATABASE mydatabase WITH OVERWRITE
编辑:
删除数据库不是解决方案。数据库不存在但文件仍然存在。
答案 0 :(得分:3)
之所以会这样,是因为有人可能已经重命名了您的数据库。.但是,后面的.mdf
文件被命名为首次创建数据库。
您可以从以下命令检查数据库名称及其对应的.mdf
文件:
SELECT * FROM sys.sysdatabases
答案 1 :(得分:1)
您可以测试数据库是否存在sys.sysdatabase,如下所示
IF EXISTS (SELECT * FROM sys.sysdatabases WHERE NAME = 'mydatabase')
BEGIN
DROP DATABASE mydatabase
END
如果要测试特定文件是否已附加到sql server,则还可以使用系统视图sys.sysdatabases,因为它包含包含所有数据库的mdf文件的“filename”属性。
如果文件附加到不同的数据库,我认为只是覆盖它听起来有风险,您应该删除附加到该文件的数据库。删除数据库将删除基础文件。
如果文件存在但未连接到sql server,则应该删除一次,并确保drop正在删除后续删除时的文件。
答案 2 :(得分:0)
现在是2018年,Life和Windows已经发生了变化。
所以我们需要一个新程序来摆脱MDF文件
删除文件的正确方法是停止SQL服务器,使用文件资源管理器删除文件,然后再次启动服务器。
请参阅Start, Stop, Pause, Resume, Restart SQL Server Services
你已经完成了
答案 3 :(得分:-1)
我使用SQL Management Studio
对象探索>选择实例>右键单击DataBase Folder>还原数据库
在“来源”部分,选择"设备"然后选择要消除的.mdf文件(选择扩展名为。* All File)
因此,您使用旧的MDF文件获得了新数据库。
然后以正确的方式放下它.mdf将消失。
欢呼声。