我被要求跟踪每个项目在特定查询的结果中出现的次数。我的想法是将查询结果存储到跟踪表中,然后将结果返回给调用者。我想知道存储这些结果的最有效方法是什么,因为结果集最多可以包含 1000 条记录。
我的计划是将查询结果拉入临时表并将这些结果插入跟踪表,然后返回临时表作为 SPROC 的结果。像这样的事情:
DECLARE @QueryTime datetime
SET @QueryTime = GETDATE()
DECLARE @Results TABLE (X nvarchar(255), Y nvarchar(255))
INSERT INTO @Results
SELECT X,Y FROM TableA
INSERT INTO TableB
SELECT X, @QueryTime FROM @Results
SELECT X, Y FROM @Results
有人有更有效的方法将批量结果集发布到跟踪表中吗?
最佳答案
您不需要@Results 表。
直接从 TableA 中插入和选择即可完成这项工作,并且很可能是最有效的方法。
DECLARE @QueryTime DATETIME
SET @QueryTime = GetDate()
INSERT INTO TableB
SELECT X, @QueryTime FROM TableA
SELECT X, Y FROM @TableA
关于SQL Server - 在跟踪表中有效存储查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1433490/