📌  相关文章
📜  检查 SQL Server 数据库中是否存在表

📅  最后修改于: 2022-05-13 01:54:40.700000             🧑  作者: Mango

检查 SQL Server 数据库中是否存在表

在创建 TABLE 之前,始终建议检查该表是否存在于 SQL Server 数据库中。

备选方案1:
使用 OBJECT_ID 和 IF ELSE 语句来检查表是否存在。

询问 :

USE [DB_NAME]
GO
IF OBJECT_ID('table_name', 'U') IS NOT NULL
BEGIN
PRINT 'Table exists.'
END
ELSE
BEGIN
PRINT 'Table does not exist.'
END

备选方案2:
使用 INFORMATION_SCHEMA.TABLES 和 SQL EXISTS 运算符检查表是否存在。

询问 :

USE [DB_NAME]
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = N'table_name')
BEGIN
PRINT 'Table exists.'
END
ELSE
BEGIN
PRINT 'Table does not exist.'
END

备选方案 3:
使用 sys.Objects 检查 SQL Server 中是否存在表。

询问 :

USE [DB_NAME]
GO
IF EXISTS(SELECT 1 FROM sys.Objects
WHERE Object_id = OBJECT_ID(N'table_name')
AND Type = N'U')
BEGIN
PRINT 'Table exists.'
END
ELSE
BEGIN
PRINT 'Table does not exist.'
END

输出 :

Table does not exists.

备选方案 4:
使用 sys.Tables 检查表是否存在。

询问 :

USE [DB_NAME]
GO
IF EXISTS(SELECT 1 FROM sys.Tables
WHERE Name = N'table_name')
BEGIN
PRINT 'Table exists.'
END
ELSE
BEGIN
PRINT 'Table does not exist.'
END


例子 :
假设我们有数据库名称“ SQL_DBA ”,我们需要创建一个新表“ geek_demo ” –

输入 1 :

USE [SQL_DBA]
GO
IF OBJECT_ID('geek_demo', 'U') IS NOT NULL
BEGIN
PRINT 'Table exists.'
END
ELSE
BEGIN
PRINT 'Table does not exist.'
END

输出-1:

Table does not exists.

让我们创建表。

Create table geek_demo (id int, name varchar(200));

现在,让我们检查表是否已创建 –

输入 2 :

USE [DB_NAME]
GO
IF EXISTS(SELECT 1 FROM sys.Objects
WHERE Object_id = OBJECT_ID(N'table_name')
AND Type = N'U')
BEGIN
PRINT 'Table exists.'
END
ELSE
BEGIN
PRINT 'Table does not exist.'
END

输出-2:

Table exists.