जवाबों:
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'
वास्तव में इसका उपयोग करना सबसे अच्छा है:
IF DB_ID('dms') IS NOT NULL
--code mine :)
print 'db exists'
Https://docs.microsoft.com/en-us/sql/t-sql/functions/db-id-transact-sql देखें
[master]
[ ]
अपनी कॉल में शामिल नहीं करना चाहिए db_id
; यह SQL सिंटैक्स है, डेटाबेस नाम का हिस्सा नहीं है।
IF EXISTS (SELECT name FROM master.sys.databases WHERE name = N'YourDatabaseName')
Do your thing...
वैसे, यह सीधे SQL सर्वर स्टूडियो से आया है, इसलिए यदि आपके पास इस उपकरण तक पहुंच है, तो मैं आपको विभिन्न "स्क्रिप्ट xxxx एएस" फ़ंक्शन के साथ खेलना शुरू करने की सलाह देता हूं जो उपलब्ध हैं। आपका जीवन आसान कर देगा! :)
मुझे @ एडुआर्डो का उत्तर पसंद है और मुझे स्वीकृत उत्तर पसंद आया। मुझे कुछ इस तरह से बूलियन वापस लेना पसंद है, इसलिए मैंने इसे आप लोगों के लिए लिखा है।
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
अब आप इसे इस तरह से उपयोग कर सकते हैं:
select [dbo].[DatabaseExists]('master') --returns 1
select [dbo].[DatabaseExists]('slave') --returns 0
इसे इस्तेमाल करे
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