sql-server - validar - verificar si existe tabla en oracle
¿Cómo comprobar si existe una base de datos en SQL Server? (5)
¿Cuál es la forma ideal de verificar si existe una base de datos en un servidor SQL utilizando TSQL? Parece múltiples enfoques para implementar esto.
De un script de 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''
En realidad es mejor usar:
if db_id(''dms'') is not null
--code mine :)
print ''db exists''
Consulte https://docs.microsoft.com/en-us/sql/t-sql/functions/db-id-transact-sql
Me gusta la respuesta de @ Eduardo y me gustó la respuesta aceptada. Me gusta recuperar un booleano de algo como esto, así que lo escribí para ustedes.
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
Ahora puedes usarlo así:
select [dbo].[DatabaseExists](''master'') --returns 1
select [dbo].[DatabaseExists](''slave'') --returns 0
PRUEBA ESTO
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...
Por cierto, esto vino directamente de SQL Server Studio, por lo tanto, si tiene acceso a esta herramienta, le recomiendo que comience a jugar con las diversas funciones "Script xxxx AS" que están disponibles. Te hará la vida más fácil! :)