这种类型的查询是什么(在哪里构建一个字符串来构建一种临时表,它比仅使用临时表有什么好处?
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
答案 0 :(得分:1)
这是动态SQL。
它允许您构建一个查询,其构造依赖于您在编写查询时可能无法获得的信息。例如,查询可能会利用表中出现的参数值,这些参数值在写入查询时不存在。
它使查询变得灵活且可重复使用,这意味着您不会一遍又一遍地编写类似的代码。