如果已附加数据库,如何使用 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 进行测试? [复制]的主要内容,如果未能解决你的问题,请参考以下文章