SQL Server:带有EXCEPT的变量

问题描述 投票:0回答:1

我的问题陷入了困境。

我有一个包含某个项目的表,首先我要检查我的所有项目是否都在我的表中并将结果存储在变量中

所以我有类似的东西:

  SELECT [ProjectID]
  FROM [DB].[dbo].[Project]
  EXCEPT
  SELECT [ProjecID]
  FROM  [DB].[dbo].[CurrentProject]
  WHERE ResourceId = (SELECT ResourceId
                      FROM [DB].[dbo].[Timesheets]
                      WHERE @TimesheetUID = TimesheetId)

如果我尝试使用

DECLARE @STOREVAR UNIQUEIDENTIFIER

@STOREVAR = SELECT [ProjectID]
            FROM [DB].[dbo].[Project]
            EXCEPT
            SELECT [ProjecID]
            FROM [DB].[dbo].[CurrentProject]
            WHERE ResourceId = (SELECT ResourceId
                                FROM [DB].[dbo].[Timesheets]
                                WHERE @TimesheetUID = TimesheetId)

我需要存储在我的变量中,因为在那之后,我必须使用@storevar进行IF

它不起作用,你知道我怎么能这样做?

sql sql-server tsql
1个回答
1
投票

你需要表变量:

DECLARE @STOREVAR TABLE ( [ProjectID]  UNIQUEIDENTIFIER)

INSERT INTO @STOREVAR ([ProjectID])
       SELECT [ProjectID]
       FROM [DB].[dbo].[Project]
       EXCEPT
       SELECT [ProjecID]
       FROM  [DB].[dbo].[CurrentProject]
       WHERE ResourceId = (SELECT ResourceId
                           FROM [DB].[dbo].[Timesheets]
                           WHERE @TimesheetUID=TimesheetId
                          );
© www.soinside.com 2019 - 2024. All rights reserved.