检查值是否存在于任何SQL表中

时间:2019-03-19 23:13:20

标签: sql

是否可以在不事先知道确切位置的情况下检查模式中的任何表或列中是否存在值?

我唯一了解的是通过指定属性列对where子句进行选择。也许以某种方式使用模式数据,或者是否为值建立索引?

1 个答案:

答案 0 :(得分:0)

可以这样做,但是不建议这样做。一方面,您将使用“查询”阻止数据库中的每个表,另一方面,您需要执行[NumberOfTablesInSchema] X [NumberOfColumnsPerTable]查询来完成此操作。

您需要做的是:

  • 查询所有表的information_schema并将其保存在变量中
  • 使用游标在每个表上循环(类似于foreach循环)
    • 查询该表中所有列的information_schema并将其保存在变量中
    • 使用游标遍历每一列(相当于foreach循环)
    • 创建一个动态sql语句,查询表x y列中值的存在
    • 执行该语句并将结果保存到表中或打印出来(表x在y列中包含5次值)

您会看到要实现此“功能”需要做大量工作