如果已附加数据库,如何使用 Transact-SQL 和 SQL Server 2008 R2 进行测试? [复制]

Posted

技术标签:

【中文标题】如果已附加数据库,如何使用 Transact-SQL 和 SQL Server 2008 R2 进行测试? [复制]【英文标题】:How can I test with Transact-SQL and SQL Server 2008 R2 if a database is already attached? [duplicate] 【发布时间】:2012-09-11 13:48:19 【问题描述】:

可能重复:How to check if a database exists in SQL Server?

我正在使用 Transact-SQL 使用以下代码附加 SQL Server 2008 R2 数据库,但我只想在尚未附加数据库的情况下执行此操作,因为尝试附加已附加的数据库会返回一个错误。

有没有办法使用 Transact-SQL 来测试数据库是否已经附加?

USE [MASTER]
GO
#I'd like to test here if database is already attached
CREATE DATABASE ASPNETDB
    ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Data\ASPNETDB.MDF')
FOR ATTACH ;
GO

【问题讨论】:

【参考方案1】:
IF NOT EXISTS(SELECT * FROM SYS.DATABASES WHERE NAME = 'ASPNETDB')
    CREATE DATABASE...

【讨论】:

【参考方案2】:

类似这样的:

IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = N'ASPNETDB')
BEGIN
  CREATE DATABASE ASPNETDB
    ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Data\ASPNETDB.MDF')
  FOR ATTACH ;
END

【讨论】:

以上是关于如果已附加数据库,如何使用 Transact-SQL 和 SQL Server 2008 R2 进行测试? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Rails:如果已使用永久链接,则将数字附加到永久链接

如何在java中的文件中循环写入或附加字符串?

在将内容附加到页面后,我如何知道 DOM 已准备就绪?

如何检查附加元素是不是已存在? [复制]

DbContext 的通用合并:如何检查实体是不是已附加?

在excel中将数据从外部csv附加到表中