开发者

SQL INSERT @tableVar SELECT ... is only insert

I need to fill a dataset with values from several tables.

I've created a stored procedure that executes 开发者_运维技巧several SELECT statements.

Each SELECT has common parts.

I decided to cache the results of these common parts.

Now I need the SELECT construct that is capable of outputting the results to a table variable.

INSERT @tableVar SELECT ... only inserts data but does not select it.

My intention is something like SELECT * OUTPUT SELECTED.* INTO @tableVar FROM ...

Is it possible to perform such operation?


INSERT @tableVar 
  OUTPUT INSERTED.* 
  SELECT * 
  FROM [...]


You can do a select after the first insert:

INSERT @probes
SELECT P.ID, P.ContainerID, P.EstimateID
FROM Probes AS P
WHERE P.LockedBy = @lockedBy

SELECT * FROM @probes

SELECT C.ID, C.Data
FROM Containers AS C
INNER JOIN
(
    SELECT DISTINCT P.ContainerID
    FROM @probes AS P
) AS X ON C.ID = X.ContainerID

SELECT E.ID, E.ObjectiveID, E.[Time]
FROM Estimates AS E
INNER JOIN
(
    SELECT DISTINCT P.EstimateID
    FROM @probes AS P
) AS X ON X.EstimateID = E.ID
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜