Ray*_*ega 251 t-sql database sql-server
使用TSQL检查SQL Server上是否存在数据库的理想方法是什么?似乎有多种方法可以实现这一点.
Edu*_*rdo 491
实际上最好使用:
IF DB_ID('dms') IS NOT NULL
--code mine :)
print 'db exists'
Run Code Online (Sandbox Code Playgroud)
请参阅https://docs.microsoft.com/en-us/sql/t-sql/functions/db-id-transact-sql
eKe*_*ek0 151
从微软的脚本:
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'
Run Code Online (Sandbox Code Playgroud)
si6*_*618 34
IF EXISTS (SELECT name FROM master.sys.databases WHERE name = N'YourDatabaseName')
Do your thing...
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这直接来自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
Run Code Online (Sandbox Code Playgroud)
现在您可以像这样使用它:
select [dbo].[DatabaseExists]('master') --returns 1
select [dbo].[DatabaseExists]('slave') --returns 0
Run Code Online (Sandbox Code Playgroud)
尝试这个
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
240930 次 |
| 最近记录: |