sql-server - create - creating a database




Como verificar se existe um banco de dados no SQL Server? (4)

Qual é a maneira ideal de verificar se existe um banco de dados em um SQL Server usando o TSQL? Parece várias abordagens para implementar isso.


De um script da Microsoft:

DECLARE @dbname nvarchar(128)
SET @dbname = N'Senna'

IF (EXISTS (SELECT name 
FROM master.dbo.sysdatabases 
WHERE ('[' + name + ']' = @dbname 
OR name = @dbname)))

-- code mine :)
PRINT 'db exists'

Eu gosto da resposta de Eduardo e gostei da resposta aceita. Eu gosto de voltar um booleano de algo assim, então eu escrevi para vocês.

CREATE FUNCTION dbo.DatabaseExists(@dbname nvarchar(128))
RETURNS bit
AS
BEGIN
    declare @result bit = 0 
    SELECT @result = CAST(
        CASE WHEN db_id(@dbname) is not null THEN 1 
        ELSE 0 
        END 
    AS BIT)
    return @result
END
GO

Agora você pode usá-lo assim:

select [dbo].[DatabaseExists]('master') --returns 1
select [dbo].[DatabaseExists]('slave') --returns 0

TENTE ESTE

IF EXISTS 
   (
     SELECT name FROM master.dbo.sysdatabases 
    WHERE name = N'New_Database'
    )
BEGIN
    SELECT 'Database Name already Exist' AS Message
END
ELSE
BEGIN
    CREATE DATABASE [New_Database]
    SELECT 'New Database is Created'
END

IF EXISTS (SELECT name FROM master.sys.databases WHERE name = N'YourDatabaseName')
  Do your thing...

Aliás, isso veio diretamente do SQL Server Studio, então se você tiver acesso a essa ferramenta, recomendo que você comece a brincar com as várias funções "Script xxxx AS" que estão disponíveis. Vai facilitar sua vida! :)





tsql