2012-07-02 129 views
0

我們在我們的應用程序中獲得了這樣的要求。開發一個PowerShell腳本來更新web.config文件和數據庫表中的computername。如何獲得在列中具有特定值的表名稱列表?

如果已經安裝了應用程序,但用戶必須更改計算機名稱,則將執行此腳本。 [所以即使機器名稱改變了,如果他執行腳本,我們安裝的應用程序也不會中斷。無需卸載並重新安裝產品]

現在很多表包含其中有computername的字段。例如。像URL這樣的列,BaseURL包含computername,然後是剩餘的文本。

我一定要找到具有列值計算機名(like column names URL and baseURL contains machine name.For example. AB2S481V0:80/Project/Default.aspx AB2S481V0 is the computername).

每個表後手動尋找尋找名單負擔儘可能多的表有表名。有沒有辦法找到表名的列表,如果我通過數據庫名和列子(不整列名)

+0

也許這可以幫助你 http://stackoverflow.com/questions/4197299/sql-server-2008-find-which-tables-contain-specific-text – Ankit

回答

0

我經常被列名搜索表,使用此查詢:

USE MYDB 
SELECT t.name, c.name 
FROM sys.tables t 
JOIN sys.columns c ON c.object_id = t.object_id 
WHERE c.name LIKE '%[my_serach_pattern]%' 

的OBJECT_ID指的是sys.tables內的表id(即sys.objects表內的object_id)。

查看MSDN瞭解更多信息。

0
Select a.name as [Table Name],b.name as [Column Name] 
from sys.tables a 
Join sys.columns b on a.object_id = b.object_id 
where b.name like '%ColumnName%' 
相關問題