【问题标题】:how can i check whether a table exists in the database (ACCESS or SQL) in C#如何在 C# 中检查数据库(ACCESS 或 SQL)中是否存在表
【发布时间】:2011-05-18 22:41:25
【问题描述】:

我发现了很多关于这个问题的问题。

但是有什么简单的语句可以完成这个任务吗?

对于 SQL 和 ACCESS

【问题讨论】:

  • 是的.. 一切都是正确的。但我不能在访问中使用它们。仅在 sql 中。

标签: c# sql ms-access


【解决方案1】:
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' 

【讨论】:

【解决方案2】:

请注意,在 SQL 中没有标准化的方法来执行此操作,您必须编写特定于平台的代码。

据我所知,所有 DBMS 都以某种方式具有此功能,但差别很大,例如在 Oracle 中,您可以查询 sys.all_tables 视图。

【讨论】:

    【解决方案3】:

    您也可以使用 OBJECT_ID。

    IF OBJECT_ID('table1') IS NOT NULL
    print 'Exists' 
    else
    print 'Not Exists' 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-23
      • 2012-07-26
      • 1970-01-01
      • 2012-01-09
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      相关资源
      最近更新 更多