【发布时间】:2011-05-18 22:41:25
【问题描述】:
我发现了很多关于这个问题的问题。
但是有什么简单的语句可以完成这个任务吗?
对于 SQL 和 ACCESS
【问题讨论】:
-
是的.. 一切都是正确的。但我不能在访问中使用它们。仅在 sql 中。
我发现了很多关于这个问题的问题。
但是有什么简单的语句可以完成这个任务吗?
对于 SQL 和 ACCESS
【问题讨论】:
IF (EXISTS (SELECT 1 FROM sys.tables WHERE name = 'table_name'))
BEGIN
-- do stuff
END
sys.tables 还可以为您提供有关表对象的一些信息,例如is_replicated 列告诉您该表是否是通过复制创建的,或者has_replication_filter 列告诉您该表是否设置了复制过滤器
注意:这是针对 SQL Server 的
编辑: 访问:
SELECT COUNT(*) as Exists from MsysObjects
WHERE type = 1
AND name = 'MY_TABLE_NAME'
【讨论】:
请注意,在 SQL 中没有标准化的方法来执行此操作,您必须编写特定于平台的代码。
据我所知,所有 DBMS 都以某种方式具有此功能,但差别很大,例如在 Oracle 中,您可以查询 sys.all_tables 视图。
【讨论】:
您也可以使用 OBJECT_ID。
IF OBJECT_ID('table1') IS NOT NULL
print 'Exists'
else
print 'Not Exists'
【讨论】: