我希望这是关于如何使用 SQL 语句检查 SQL Server 2000/2005 中表是否存在的最终讨论。
这里有两种可能的方法。哪一种是标准/最佳方法?
第一种方式:
IF EXISTS (SELECT 1
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'
AND TABLE_NAME='mytablename')
SELECT 1 AS res ELSE SELECT 0 AS res;
第二种方式:
IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL
SELECT 1 AS res ELSE SELECT 0 AS res;
MySQL提供了简单的
SHOW TABLES LIKE '%tablename%';
陈述。我正在寻找类似的东西。
对于这样的查询,最好使用INFORMATION_SCHEMA
看法。这些视图(大部分)是许多不同数据库的标准,并且很少随着版本的不同而改变。
要检查表是否存在,请使用:
IF (EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'TheTable'))
BEGIN
--Do Stuff
END
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)