0
A
回答
0
我得到的溶液,以顯示/搜索所有的表,列和SP與存儲過程:
CREATE PROC SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN
-- Copyright © 2013 Peter Nold. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string
CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110), @myCount varchar(255)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
/* debug */
print '************************************************************'
print 'Starting Search For: ' + @SearchStr2
print '************************************************************'
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
-- debug
print 'Searching the field: ' + @TableName + '.' + @ColumnName
INSERT INTO #Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(CONVERT(varchar(max), ' + @ColumnName + '), 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE CONVERT(varchar(max), ' + @ColumnName + ') LIKE ' + @SearchStr2
)
END
END
END
SELECT ColumnName, ColumnValue FROM #Results
SET @myCount = 'Found in #columns: ' + cast((select count(*) from #Results) AS VARCHAR)
print '************************************************************'
print @myCount
print '************************************************************'
END
/* example to search for the text METZ:
***
exec SearchAllTables 'METZ'
*/
2
如果數據庫您真的意味着絕對的一切,包括程序源代碼,最簡單的將可能是生成一個數據庫轉儲並搜索結果文件中的字符串。這比在信息模式上運行各種查詢要簡單。
+0
Thanx爲您的提示。會試試這個。該提示的Thanx值爲 –
1
這裏是搜索特定文本中存儲的過程的代碼
SELECT Distinct SO.Name
FROM sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type = 'P'
AND SC.Text LIKE '%test%'
ORDER BY SO.Name
+0
。由於我有時搜索了幾個主題/基礎,因此,如果要運行存儲過程或顯示視圖,那麼獲得「概覽」概述將能夠區分它們會有所幫助。 –
相關問題
- 1. 在數據庫中搜索字符串
- 2. 如何在SQLite數據庫中搜索字符串
- 3. 如何在特定的字符串中搜索MySQL數據庫
- 4. 如何在整個MySQL數據庫中搜索字符串?
- 5. 查詢搜索數據庫的文本字符串
- 6. 搜索字符串數據庫
- 7. 文本搜索字符串
- 8. 如何搜索字符串在MySQL數據庫在PHP
- 9. 如何搜索文本文件中的字符串在C#中
- 10. 如何在PHP中搜索文本文件中的字符串
- 11. 如何搜索SQL Server數據庫中的字符串
- 12. 在sqlite數據庫中搜索字符串的任何組合
- 13. 如何在文本文件中使用Qt搜索字符串
- 14. JSP BufferedReader如何在文本文件中搜索字符串
- 15. 基於文本框和字符串在數據庫中搜索的查詢
- 16. 如何在數據庫中搜索本身是MongoDB中搜索字符串的子鍵
- 17. Kibana:文本中搜索字符串
- 18. 在MySQL數據庫中搜索輸入字符串中的值
- 19. 在數據庫中搜索字符串中的單詞
- 20. 如何搜索sql server數據庫的字符串?
- 21. 如何搜索int而不是字符串,sqlite數據庫,android
- 22. 如何在字符串中搜索文本?
- 23. 如何在文本中搜索字符串?
- 24. 如何檢索xamarin中本地數據庫的字符串值?
- 25. 在完整的MS Access數據庫中搜索字符串
- 26. 在Mysql數據庫中搜索字符串的速度更快
- 27. 在Visual Fox Pro數據庫中搜索字符串
- 28. 在整個sql server數據庫中搜索一個字符串
- 29. php在數據庫中搜索字符串
- 30. 使用oci_bind_by_name在Oracle數據庫中搜索字符串
在數據或定義還是兩者? **很重要** – gbn