我需要在Sql server 2005中進行查詢。我有一個列名。有了這些,我需要找到一個數據庫名稱和表名。有什麼方法可以找到它嗎?如何使用列名查找數據庫名稱和表名稱
2
A
回答
0
可能,該腳本將有利於你 -
DECLARE @SearchColumnName SYSNAME
SELECT @SearchColumnName = 'EmployeeID'
IF EXISTS(
SELECT 1
FROM tempdb.dbo.sysobjects
WHERE id = OBJECT_ID('tempdb.dbo.#DB')
) DROP TABLE #DB
CREATE TABLE #DB
(
[DB_NAME] SYSNAME
, [OBJECT_NAME] SYSNAME
, [COLUMN_NAME] SYSNAME
)
DECLARE @SQL NVARCHAR(500)
SELECT @SQL = 'USE [?]
INSERT INTO #DB
(
[DB_NAME]
, [OBJECT_NAME]
, [COLUMN_NAME]
)
SELECT
DB_NAME()
, s.name + ''.'' + o.name
, c.name
FROM (
SELECT
c.[object_id]
, c.name
FROM sys.columns c WITH (NOWAIT)
WHERE c.name LIKE ''%'' + ''' + @SearchColumnName+ ''' + ''%''
) c
JOIN sys.objects o WITH (NOWAIT) ON c.[object_id] = o.[object_id]
JOIN sys.schemas s WITH (NOWAIT) ON o.[schema_id] = s.[schema_id]
WHERE o.type = ''U'''
EXEC sys.sp_MSforeachdb @SQL
SELECT *
FROM #DB
ORDER BY [DB_NAME], [OBJECT_NAME]
4
從SO的姊妹網站, 「StackExchange」:
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%EmployeeID%'
ORDER BY schema_name, table_name;
相關問題
- 1. 選擇數據庫名稱,表名稱和列名稱。
- 2. 使用.net獲取名稱表,名稱列,名稱數據
- 3. 查找Jar名稱使用類名稱
- 4. 如何使服務器名稱和數據庫名稱動態
- 5. 在mysql中查找用戶名,數據庫名稱和版本?
- 6. 從存儲過程名稱查找數據庫名稱
- 7. 如何根據列名稱查找表的名稱,然後訪問所述表
- 8. 使用數據框標題/名稱重命名列名稱
- 9. 數據庫列的列表名稱
- 10. 列出PostgreSQL數據庫的所有索引名稱,列名稱及其表名
- 11. 查找名稱
- 12. 「查找名稱」
- 13. 數據庫名稱
- 14. 檢查Oracle sid和數據庫名稱
- 15. PHP - 獲取數據庫名稱列表
- 16. Cakephp MySQL數據庫表列名稱
- 17. 如何查找Jframe名稱
- 18. 無法在mvc中找到數據庫名稱和源數據名稱3
- 19. 如何在圖的名稱中使用列表名稱?
- 20. 對消息密鑰和數據庫表名稱和列名使用常量
- 21. 如何從sqlite獲取所有數據庫名稱和表名稱
- 22. 如何從PHP中的URL中獲取數據庫名稱和表名稱?
- 23. Oracle SQL:如何查找給定列名稱的表名?
- 24. 如何使用名稱查找控件?
- 25. SQL數據庫連接名稱與數據庫名稱不同
- 26. SQL命令名稱是數據庫名稱;使用動態SQL?
- 27. PHP/MYSQL從名稱數據庫獲取user_id使用名稱
- 28. 如何使用java更改數據庫名稱和表?
- 29. 在數據庫中列出數據庫和表名稱?
- 30. Hibernate使用列名稱屬性名稱