如何在SQL Server上以唯一的新名称创建新数据库?

时间:2012-03-15 18:33:25

标签: asp.net sql-server-2008r2-express

我在.NET 4.0和SQL Server 2008 R2上使用带有C#的Visual Studio 2010 ASP.NET。

我想在名为WINSRV\SQLSRV的服务器上创建一个数据库。

如何循环测试唯一的数据库名称?

我的默认数据库应为ab。如果这个名字被采用,我想创建一个名为ab1的数据库,如果这个数据库也被采用 - ab2等等。

我需要它来自在Visual Studio 2010 ASP.NET C#脚本中创建的网页,而不是来自SQL Server管理工作室。

感谢。

2 个答案:

答案 0 :(得分:1)

Declare @Iteration int
Set @Iteration = 0
Declare @DBName varchar(100)

while(@Iteration <> -1)
begin
    if(@Iteration = 0)
        Set @DBName = 'ab'
    Else
        Set @DBName = 'ab' + Convert(varchar, @Iteration)
    IF NOT EXISTS(select Object_Id from sys.databases where name = 'ab')
    Begin

        Exec('create database ' +  @DBName)
        return;
    End
    Else
    Begin
        Set @Iteration = @Iteration + 1
    End
End

修改

要从C#工作,请点击 here

答案 1 :(得分:0)

您需要检查您的数据库选择是否存在:

你可以这样做主要的SQL端:

IF (EXISTS (SELECT name FROM master.sys.databases WHERE name = 'ab')))
    --Do what you need to do

或者您可以获取列表数据库并检查.net端:

SELECT name FROM master.sys.databases

希望这会有所帮助。