检查 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.