是否可以編寫一個查詢,該查詢將爲我提供SQL Server數據庫中所有表的名稱?我正在研究一些我沒有創建的系統上的'事實'文檔,並且正在尋找一個快捷方式來獲取數據庫中表的列表。查詢以獲取SQL Server 2008數據庫中所有表的名稱
回答
在一個單一的數據庫 - 是:
USE your_database
SELECT name FROM sys.tables
獲取所有數據庫中的所有表 - 只能用黑客....看到這太問題的幾種方法如何做到這一點:How do I list all tables in all databases in SQL Server in a single result set?
另一種方式,也將在MySQL和PostgreSQL
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
where TABLE_TYPE = 'BASE TABLE'
工作試試這個:
SELECT s.NAME + '.' + t.NAME AS TableName
FROM sys.tables t
INNER JOIN sys.schemas s
ON t.schema_id = s.schema_id
它將顯示當前數據庫中所有表的架構+表名。
這是一個版本,它將列出當前服務器上每個數據庫中的每個表。它允許對任何部分或服務器+數據庫+模式+表名的部分使用的搜索參數:
SET NOCOUNT ON
DECLARE @AllTables table (CompleteTableName nvarchar(4000))
DECLARE @Search nvarchar(4000)
,@SQL nvarchar(4000)
SET @Search=null --all rows
SET @SQL='select @@SERVERNAME+''.''+''?''+''.''+s.name+''.''+t.name from [?].sys.tables t inner join sys.schemas s on t.schema_id=s.schema_id WHERE @@SERVERNAME+''.''+''?''+''.''+s.name+''.''+t.name LIKE ''%'+ISNULL(@SEARCH,'')+'%'''
INSERT INTO @AllTables (CompleteTableName)
EXEC sp_msforeachdb @SQL
SET NOCOUNT OFF
SELECT * FROM @AllTables ORDER BY 1
集@Search爲NULL所有表,將其設置爲東西像「dbo.users」或「用戶」或「.master.dbo」,甚至包括像通配符等
要獲取領域信息過多,你可以使用以下「的.master%u。」:
SELECT TABLE_SCHEMA, TABLE_NAME,
COLUMN_NAME, substring(DATA_TYPE, 1,1) AS DATA_TYPE
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA NOT IN("information_schema", "mysql", "performance_schema")
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION
請使用以下查詢來列出數據庫中的表。
select name from sys.Tables
此外,您可以添加where
條件,跳過系統中加入type ='U'
防爆生成表格和列表只有用戶創建的表:select name from sys.Tables where type ='U'
請在適當的地方使用適當的格式。 – svgrafov 2017-10-02 08:47:45
肯定Jens..thanks :) – 2017-10-02 10:24:04
- 1. SQL Server查詢獲取表中所有列的數據類型?
- 2. SQL Server 2008在表/視圖名稱前綴數據庫名稱
- 3. 記錄SQL Server 2008 Express數據庫上的所有查詢?
- 4. SQL Server 2008查詢從兩個表中獲取混合數據
- 5. 檢索SQL Server數據庫中所有表的名稱列
- 6. 從SQL Server 2008中的所有數據庫獲取所有存儲過程
- 7. 如何獲取SQL SERVER數據庫中所有表的行數
- 8. SQL查詢以獲取SQL Server中所有作業的狀態
- 9. 如何使用tsql獲取SQL Server實例中的所有數據庫名稱?
- 10. SQL查詢從所有數據庫中獲取數據
- 11. SQL查詢以獲取全部或部分搜索名稱的所有名稱
- 12. 從SQL Server表中獲取所有不爲NULL的列名稱
- 13. sql server 2008數據庫圖表名稱搜索
- 14. 獲取在SQL Server中提供的數據庫名稱2014
- 15. 從SQL Server 2008端查詢SQL Server 2005數據庫
- 16. 查詢所有當前數據庫和用戶名的SQL Server查詢
- 17. `無效的對象名稱`,除非我在SQL Server 2008查詢中指定數據庫名稱
- 18. 在鏈接的SQL Server上使用名稱查詢數據庫
- 19. 數據庫名稱更改SQL失敗Sql Server 2008
- 20. 如何查詢IntersystemsCaché以獲取名稱空間,數據庫和表的列表?
- 21. 獲取我數據庫上所有表的名稱
- 22. SQL Server 2008 R2表查詢
- 23. 查詢SQL Server 2012數據庫實例中的所有視圖
- 24. 恢復SQL Server 2008數據庫後「無效的對象名稱」
- 25. 從SQL Server 2008數據庫中選擇列中的所有值?
- 26. 查詢來獲取數據庫的SQL Server 2005中
- 27. 列出PostgreSQL數據庫的所有索引名稱,列名稱及其表名
- 28. SQL中特定數據庫中所有表的列名稱
- 29. 從查詢數據的表名中獲取表名的SQL查詢
- 30. 如何獲取SQL Server 2008查詢中的行數
完美地工作! – 2010-05-21 15:19:12