2010-12-23 30 views

回答

2

你沒有提到你正在使用的數據庫,但我認爲它是SQL Server。

這裏是你如何獲取一個表的列表:

USE YourDBName 
GO 
SELECT * 
FROM sys.Tables 

您可以使用Ado.Net運行查詢,也可以將表表添加到您的實體數據模型。

已更新

以下是其他一些方法。您可能需要根據您的需求來調整它們。

[dbo]。[sysobjects]包含在數據庫中創建的每個對象的一行,如約束,表,視圖,存儲過程,函數等。要確定對象的類型,您將查詢包含對象類型的[xtype]列。對於用戶表,[xtype]值是'U',代表用戶表。

SELECT [Name] FROM [dbo].[sysobjects] 
WHERE [xtype] = 'U' 

的第二種方法是通過查詢[INFORMATION_SCHEMA] [表]系統視圖。 [Information_Schema]。[Tables]系統視圖對當前數據庫中當前用戶具有權限的每個表包含一行。此viw基於[dbo]。[sysobjects]系統表。 [Information_Schema]。[Tables]系統視圖也將包含列表中的視圖。爲了篩選後的用戶表,你會只輸出那些記錄[TABLE_TYPE]是「基表」,可從以下查詢可以看到:

SELECT * FROM [Information_Schema].[Tables] 
WHERE [Table_Type] = 'BASE TABLE' 

中列出用戶表的第三個方法一個數據庫是通過使用sp_tables系統存儲過程。 sp_tables系統存儲過程返回可以出現在FROM子句中的對象列表。既然你只關心用戶表,而不是系統表或視圖,您必須設置@table_type參數爲「‘表’」,這可以從下面的查詢中可以看出:

EXEC sp_tables @table_type = "'TABLE'" 
+0

嗯..從查詢你提到我們將得到所有表的列表,但是,我只需要獲取數據庫中而不是模型中的表的列表。 – SKumar 2010-12-23 18:48:27

相關問題