2009-08-31 41 views
1

是否有相对简单的方法来查找某个角色的实例,比如说“|”或“〜”或“&”,在数据库中?在数据库中查找一个角色的实例

它可以在任何领域......在任何表格中。

数据库中共有大约400到500个表格。

回答

1

最简单的方法是批量导出所有表的所有数据,然后搜索/ grep查找有问题的字符串。

http://msdn.microsoft.com/en-us/library/ms187042.aspx

+1

可能比动态SQL更容易... – gbn 2009-08-31 18:50:47

+0

谢谢,我们现在正在尝试...发现有更多的表/数据比我想象的要多,所以这需要一段时间。 – Jason 2009-09-01 00:52:47

1

你可以导出使用SQL管理控制台的数据库到一个大的SQL脚本。一旦你有文本文件,你可以使用记事本/ grep /等。找到你要找的角色。

+0

适合代码...但为什么不搜索syscomments? – gbn 2009-08-31 18:52:46

1

此代码将识别数据库中的每个表和varchar列。它可用于为每个表和列生成select语句,以搜索该列包含要查找的字符的行。

select o.id, o.name, c.name, t.name, t.* 
from sysobjects o 
join syscolumns c on c.id = o.id 
join systypes t on t.xtype = c.xtype 
where o.xtype = 'U' 
     and t.status = 0 
     and t.name like '%varchar' 
order by o.name, c.name 

根据您的表的大小和索引,这可能会也可能不是一个好主意。

+0

这也是我的第一个想法。看起来像遍历所有结果将非常繁琐......我想我可以运行一个查询,当它发现匹配时发送包括表等在内的某种通知。谢谢您的帮助。 – Jason 2009-09-01 00:51:48

+0

是 - 不是生成SELECT语句,而是将INSERT语句生成到公用表中,并包含表名和列名。 – 2009-09-01 01:19:01

相关问题