簡體   English   中英

如何獲取在列中具有特定值的表名列表?

[英]How to get a list of table names which has particular value in column?

我們在這樣的應用程序中有一個要求。 開發一個Powershell腳本來更新web.config文件和數據庫表中的計算機名。

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

現在很多表都包含其中具有計算機名的字段。 對於前。 諸如URL,BaseURL之類的列包含計算機名,然后包含其余文本。

我必須找到具有列值computername的表名(like column names URL and baseURL contains machine name.For example. AB2S481V0:80/Project/Default.aspx AB2S481V0 is the computername ).

通過手動查找每個表來查找列表是那里許多表的負擔。 如果我傳遞數據庫名稱和列子字符串(不是整個列名稱),有什么方法可以找到表名稱列表

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

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以獲取更多信息。

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%'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM