SQL Server 2012清理sql程序的可重复性

时间:2016-12-16 18:25:49

标签: sql sql-server-2012

我有一个查询,我在SQL Server 2012 RDBMS中运行,我在其中声明一个变量并在几个参考表中查找该变量。我添加了" IF EXISTS(...)"因为如果与我的变量不匹配,我不想看到返回的空表。在" IF EXISTS(...)"之后,我运行查找'查询我的变量。

添加" IF EXISTS(...)"已经大大减慢了这个查找速度。是否有更程序化的方法来实现相同的结果?我只想要在变量匹配时返回表格,并且我想让我的代码更高效,更少重复......我一下子做了大约50-60个查找。如何使这段代码更高效,更精通呢?

以下是查询的形式:

    DECLARE @PhN as varchar(30)
    SET @PhN = 'MyVariable'

    IF EXISTS(select top 1 * from ref.T1 x where x.TN_NBR = @PhN)
        select 'ref.T1' as [ref.T1], * from ref.T1 x where x.TN_NBR = @PhN
    IF EXISTS(select top 1 * from ref.T2 x where x.TN = @PhN or x.BILL_NUM = @PhN)
        select 'ref.T2' as [ref.T2], * from ref.T2 x where x.TN = @PhN or x.BILL_NUM = @PhN

    -- ... This pattern continues about fifty times ...

    IF EXISTS(select top 1 * from ref.Tn x where x.TFN = @PhN)
        select 'ref.Tn' as [ref.Tn], * from ref.Tn x where x.TFN = @PhN
    IF EXISTS(select top 1 * from ref.Tn2 x where x.ENI_800_NUMBER = @PhN or x.ENI_POTS_NUMBER = @PhN)
        select 'ref.Tn2' as [ref.Tn2], * from ref.Tn2 x where x.ENI_800_NUMBER = @PhN or x.ENI_POTS_NUMBER = @PhN

1 个答案:

答案 0 :(得分:0)

您可以使用这样的临时表:

componentWillMount: function() {
  ReactModal.setAppElement('body');
}