你怎么称呼这种sql查询

时间:2014-01-23 09:13:28

标签: sql tsql ssms

这种类型的查询是什么(在哪里构建一个字符串来构建一种临时表,它比仅使用临时表有什么好处?

  SET @sqlstring = 'WITH TEMPProc AS
    (
     SELECT
                CustType ,
                [Description] ,
                [ApplyVAT?],
                [ProduceInvoices?] ,
                [PurchaseSale] ,
                TermsDays ,
                DateTimeLastUpdated, 
                ROW_NUMBER() OVER (Order By ' + @SortExpression + ') As RowNumber
        FROM    dbo.CustomerTypes
        )

        SELECT
             CustType ,
                [Description] ,
                [ApplyVAT?],
                [ProduceInvoices?] ,
                [PurchaseSale],
                TermsDays ,
                DateTimeLastUpdated
                FROM TEMPProc
                WHERE
                ROWNUMBER > ' + CONVERT(VARCHAR,@LowerBand) + 
                ' AND ROWNUMBER <' + CONVERT(VARCHAR,@UpperBand)
                + ' ORDER BY ' + @SortExpression

                EXEC sp_executesql @sqlstring

1 个答案:

答案 0 :(得分:1)

这是动态SQL。

它允许您构建一个查询,其构造依赖于您在编写查询时可能无法获得的信息。例如,查询可能会利用表中出现的参数值,这些参数值在写入查询时不存在。

它使查询变得灵活且可重复使用,这意味着您不会一遍又一遍地编写类似的代码。