【问题标题】:how to query the database without accessing the tables, correct the database but not the tables如何在不访问表的情况下查询数据库,更正数据库而不是表
【发布时间】:2010-06-17 07:23:57
【问题描述】:

使用的是c# sql vs 08 sql server 2005 express

无论何时何地使用 sql select 语句,它总是像

select  * from tablename

或计数语句 也像

select count something from table name

用于选择或在桌子上做任何事情,

我想知道我所连接的数据库中存在哪些表!

很喜欢

select alltablenames from database_name.

请指导。

【问题讨论】:

标签: c# sql sql-server-2005 visual-studio-2008


【解决方案1】:

就个人而言,我会使用 Information_Schema.TablesInformation_Schema.Columns 视图,因为这些是 Microsoft 提供的视图。 (而不是使用 sysobjects 表)

【讨论】:

  • 使用 IMO 的原因更多是因为它们是 ANSI 标准的一部分,不应该随心所欲地在版本之间更改,并且应该在其他符合 ANSI 的 DB 中工作相同 -换句话说,因为它们不是 Microsoft 特定的。 sysobjects 是 Microsoft 特定的解决方案。
【解决方案2】:

列出所有数据库表

USE YourDBName
GO 
SELECT *
FROM sys.Tables WHERE type='u' 

检查表是否存在于数据库中

IF EXISTS (SELECT 1 
    FROM sysobjects 
    WHERE xtype='u' AND name='tablename') 
        SELECT 'tablename exists.' 
ELSE 
        SELECT 'tablename does not exist.'

【讨论】:

    【解决方案3】:

    以下查询返回 SQL Server 数据库中表的名称:

    select name from sysobjects where xtype = 'U'
    

    【讨论】:

      【解决方案4】:

      参见http://database.ittoolbox.com/documents/finding-table-names-in-sql-18556 - 对给定表的所有表名和所有列的简单查询。

      【讨论】:

        【解决方案5】:

        EXEC sp_tables
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-10-25
          • 1970-01-01
          • 1970-01-01
          • 2021-08-04
          • 2011-11-20
          • 1970-01-01
          • 2010-11-25
          相关资源
          最近更新 更多