我有一个包含200多列的表格。我在文本文件的帮助下填充表格。数据已成功插入表中。
我的问题是我想检查文本文件中的特定值是否存在于表中。我知道有些人可能会说我可以检查一下,你可以从代码中映射列名,然后使用列名并检查如下:
select 1 from table_name where column_name like '%value%'
但我没有访问代码的权限。我只有文本文件和数据库。 所以我只需检查数据库中的值。繁琐冗长的一种方法是逐个逐一地进入每个200列,然后像上面那样执行。还有其他办法吗?
答案 0 :(得分:1)
根据你的桌子生成200个奇怪的脚本怎么样?下面的脚本可能很有用
With Sample_CTE as (
select a.TABLE_NAME,b.COLUMN_NAME from INFORMATION_SCHEMA.TABLES a inner join
INFORMATION_SCHEMA.COLUMNS b on a.TABLE_NAME = b.TABLE_NAME and a.TABLE_NAME = 'MYTABLENAME')
SELECT 'SELECT TABLE_NAME,COLUMN_NAME from ' + TABLE_NAME + ' where '+ COLUMN_NAME +' like ''%value%''' from Sample_CTE
答案 1 :(得分:1)
这会给你一个真/假的结果:
DECLARE @tablexml XML = (SELECT * FROM yourtable FOR XML PATH(''))
SELECT @tablexml.query('//*="valuetosearchfor"')
答案 2 :(得分:0)
它是什么类型的文件?您可以使用SQL数据导入程序将文件导入新表。获得新表后,您可以在两个表上进行INNER JOIN以比较数据集。
答案 3 :(得分:0)
如果我理解正确,那么你有一个包含200列的表。在该表中,您可以从文本文件中放入一些数据,这意味着根据文本文件的大小在该表中填充x行数。
现在您想要在表格中找到某个值。
如果您对SQL不是很熟悉,可以试试这样的工具: SQL locator