반응형
SQL Server에 데이터베이스가 있는지 확인하는 방법
TSQL을 사용하여 SQL Server에 데이터베이스가 존재하는지 확인하는 이상적인 방법은 무엇입니까?이를 구현하기 위한 여러 가지 접근법이 있는 것 같습니다.
실제로 사용하는 것이 가장 좋습니다.
IF DB_ID('dms') IS NOT NULL
--code mine :)
print 'db exists'
https://learn.microsoft.com/en-us/sql/t-sql/functions/db-id-transact-sql 를 참조해 주세요.Azure SQL Database 에서는 의미가 없습니다.
Microsoft 의 스크립트로부터:
DECLARE @dbname nvarchar(128)
SET @dbname = N'Senna'
IF (EXISTS (SELECT name
FROM master.dbo.databases
WHERE ('[' + name + ']' = @dbname
OR name = @dbname)))
IF EXISTS (SELECT name FROM master.sys.databases WHERE name = N'YourDatabaseName')
Do your thing...
참고로 이것은 SQL Server Studio에서 직접 가져온 것이므로 이 툴에 액세스할 수 있다면 사용할 수 있는 다양한 "Script xxxx AS" 기능을 사용하는 것이 좋습니다.생활이 편해집니다! :)
나는 @Eduardo의 대답도 좋고, 받아들여진 대답도 좋았다.이런 데서 부울을 되찾고 싶어서 여러분들을 위해 써봤습니다.
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
Public Function SQLDatabaseExist(ByVal DefaultConnectionString As String, ByVal DataBaseName As String) As Boolean
Try
'CREATE DATABASE
Dim SqlString As String = ""
SqlString = "SELECT CASE WHEN EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'" & DataBaseName & "') THEN CAST (1 AS BIT) ELSE CAST (0 AS BIT) END"
Dim ExcRet As Integer = 0
Using connection As New SqlConnection(DefaultConnectionString)
Dim command As New SqlCommand(SqlString, connection)
command.Connection.Open()
ExcRet = command.ExecuteScalar()
command.Connection.Close()
command.Dispose()
End Using
Return ExcRet
Catch ex As Exception
Return False
End Try
기능 종료
''연결 문자열의 초기 카탈로그는 마스터여야 합니다!''기본 연결 문자열 샘플
Dim DefaultConnectionString As String = "Data Source=localhost\SQLSERVER2008;Initial Catalog=Master; User ID=SA; Password='123123'; MultipleActiveResultSets=false; Connect Timeout=15;Encrypt=False;Packet Size=4096;"
언급URL : https://stackoverflow.com/questions/679000/how-to-check-if-a-database-exists-in-sql-server
반응형
'programing' 카테고리의 다른 글
SQL에서의 크로스 조인 vs 이너 조인 (0) | 2023.04.08 |
---|---|
Scope_Identity(), Identity(), @@Identity 및 Ident_Current()의 차이점은 무엇입니까? (0) | 2023.04.08 |
PowerShell은 상수를 지원합니까? (0) | 2023.04.08 |
Get-Child Item을 사용하여 디렉토리만 가져오려면 어떻게 해야 합니까? (0) | 2023.04.08 |
개체 'DF__*'이(가) '*' 열에 종속됨 - int를 이중으로 변경 (0) | 2023.04.08 |