【问题标题】:How can I Retrieve a List of All Table Names from a SQL Server CE database?如何从 SQL Server CE 数据库中检索所有表名的列表?
【发布时间】:2014-08-19 19:23:36
【问题描述】:

是否有一些 SQL 将返回一个表名列表或(切入正题)返回一个布尔值以判断具有特定模式的表名是否存在?

具体来说,我需要知道数据库中是否有一个名为INV[Bla]的表如INVclayINVcherriINVkelvinINVmorganINVgrandFunkINVgobbledygookINV2468WhoDoWeAppreciate等(INV 部分是我正在寻找的;表名的其余部分几乎可以是任何东西)。

IOW,可以在 SQL 语句中使用“通配符”,例如:

SELECT * tables 
FROM database 
WHERE tableName = 'INV*'

或者如何实现?

【问题讨论】:

  • 虽然它可能不适用于您的情况,但最好包含表架构 - 不仅在上面的查询中,而且在您实现以下答案之一时。

标签: sql sql-server-ce windows-ce database-schema


【解决方案1】:

这应该可以让你到达那里:

SELECT * 
FROM INFORMATION_SCHEMA.TABLES
 where table_name LIKE '%INV%'

编辑: 固定table_name

【讨论】:

    【解决方案2】:

    检查是否存在:

    --

    --注意sql编译器知道它只需要检查是否存在,所以这种情况“select *”就可以了

    如果存在 (选择 * 来自 [sys].[tables] 其中upper([name]) like N'INV%') 选择N'做一些适当的事情,因为有一个基于此模式的表格';

    【讨论】:

      【解决方案3】:

      您可以尝试以下方法:

      SELECT name FROM sys.tables where name LIKE 'INV%';
      

      【讨论】:

        猜你喜欢
        • 2012-09-23
        • 1970-01-01
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        • 2021-12-18
        • 1970-01-01
        相关资源
        最近更新 更多