我會從information_schema.tables中選擇並將結果保存到文件以構建表格列表,然後使用bat文件或命令行正則表達式工具將表格列表用作源代碼來對照源代碼中的文件進行比較目錄。你可以輸出什麼文件有一個命中,什麼表名被命中(如果你感興趣的話,命中的是哪一行)。我不是一個grep高手,但我認爲這將是正確的使用工具。
編輯 根據數據訪問是如何處理的,你可能想擴大搜索列表使用finstr,遊標包括INFORMATION_SCHEMA.ROUTINES
編輯2方法存儲的特效,也許黑暗的一面
請注意,雖然下面應該工作,如果指向錯誤的目錄,它可能會造成嚴重破壞。此外,只有源代碼可從服務器訪問並啓用xp_cmdshell時,它纔會起作用。也許整個想法是邪惡的,我不知道。
create table #files (filepath varchar(4000))
create table #tablesfound (tablename sysname, filepath varchar(4000))
declare @sql nvarchar(4000)
Declare @cmd nvarchar(400)
Declare @dir varchar(256)
Declare @tbl sysname
set @dir = 'source code directory with e.g. c:\source\'
declare crsX cursor for
Select table_name from information_schema.tables
open crsX
Fetch Next from crsX into @tbl
While (@@Fetch_Status = 0)
Begin
set @cmd = 'findstr /S /M ' + quotename(@tbl, char(34)) + ' ' + @dir + '*.*'
insert into #files exec xp_cmdshell @cmd
if exists (Select 1 from #files where filepath is not null)
Begin
insert into #tablesfound (tablename, filepath)
Select @tbl, filepath from #files where filepath is not null
delete from #files
End
print @cmd
Fetch Next from crsX into @tbl
End
close crsX
Deallocate crsX
Select * from #tablesfound
我喜歡它。我會盡力並接受你的答案,如果它解決了。 – JosephStyons 2009-01-23 14:51:27