我有一个 SQL Server 2012 数据库,我试图将其分离并将相关数据复制到电子表格中。我想要做的是找到数据库中的哪个表有人的姓氏,因为它们不在逻辑命名的表中。我将如何搜索以查找其中包含例如姓氏edyvane
的表。
我对 SQL Server 的了解有限,因此分步说明会非常有帮助!
非常感谢
我有一个 SQL Server 2012 数据库,我试图将其分离并将相关数据复制到电子表格中。我想要做的是找到数据库中的哪个表有人的姓氏,因为它们不在逻辑命名的表中。我将如何搜索以查找其中包含例如姓氏edyvane
的表。
我对 SQL Server 的了解有限,因此分步说明会非常有帮助!
非常感谢
迟到的答案,也许对其他读者有用
您也可以尝试使用 ApexSQL Search,它是一个免费工具。它可以搜索数据库对象中的文本(包括对象名称)、存储在表和视图中的数据(甚至是加密的),并且只需单击一下即可重复以前的搜索。
在对象资源管理器的 SSMS 中,选择一个数据库,然后从 ApexSQL 搜索主菜单中选择文本搜索选项。这将打开文本搜索窗口,在搜索文本框中输入您要搜索的值(例如edyvane)并单击查找按钮。
如果您需要更多信息,可以查看此链接。
如果您需要按名称查找数据库对象(例如表、列、触发器) - 请查看名为SQL Search的免费Red-Gate 工具,它会在您的整个数据库中搜索任何类型的字符串。它搜索结构(而不是内容)——例如,它会找到任何带有列的表——这通常足以找出你感兴趣的表。surname
对于任何 DBA 或数据库开发人员来说,它都是一个很棒的必备工具——我是否已经提到它完全免费用于任何用途?
在方法上,虽然它有点原始,但会运行这个语句:
SELECT 'SELECT * FROM ' + OBJECT_NAME(id) +
' WHERE ' + c.name + ' LIKE ''%edyvane%'''
FROM syscolumns c
WHERE xtype IN (35,99,167,175,231,239)
这将为您返回要SELECT
针对文本列运行的语句列表。你会在同一张桌子上得到不止一个SELECT
,但这并不重要,因为这只是研究。您只需要动手并找到数据。
这是我使用的脚本:在数据库中搜索特定单词 v2.sql - gvee.co.uk