Sql (2008) Stored Procs 중 하나에 다음 코드가 완벽하게 실행됩니다.
CREATE PROCEDURE [dbo].[Item_AddItem]
@CustomerId uniqueidentifier,
@Description nvarchar(100),
@Type int,
@Username nvarchar(100),
AS
BEGIN
DECLARE @TopRelatedItemId uniqueidentifier;
SET @TopRelatedItemId =
(
SELECT top(1) RelatedItemId
FROM RelatedItems
WHERE CustomerId = @CustomerId
)
DECLARE @TempItem TABLE
(
ItemId uniqueidentifier,
CustomerId uniqueidentifier,
Description nvarchar(100),
Type int,
Username nvarchar(100),
TimeStamp datetime
);
INSERT INTO Item
OUTPUT INSERTED.* INTO @TempItem
SELECT NEWID(), @CustomerId, @Description, @Type, @Username, GETDATE()
SELECT
ItemId,
CustomerId,
@TopRelatedItemId,
Description,
Type,
Username,
TimeStamp
FROM
@TempItem
END
GO
따라서 여러분에게 질문은 다음과 같은 라인을 따라 무언가를 할 수 있다는 것입니다.
DECLARE @TempCustomer TABLE
(
CustomerId uniqueidentifier,
FirstName nvarchar(100),
LastName nvarchar(100),
Email nvarchar(100)
);
SELECT
CustomerId,
FirstName,
LastName,
Email
INTO
@TempCustomer
FROM
Customer
WHERE
CustomerId = @CustomerId
다른 진술에서 메모리 의이 데이터를 재사용 할 수 있도록? SQL Server는 위의 문에 적합하지만 별도의 변수를 만들고 동일한 테이블에 대해 별도의 SELECT 문을 통해 각 변수를 초기화하고 싶지는 않습니다 ... UGH !!!
같은 테이블에 대해 여러 번 쿼리하지 않고도 행을 따라 무언가를 달성하는 방법에 대한 제안 사항이 있습니까?
declare @t table
당신이 그것을 다시해야하는 경우 한 번, 그리고하는 화재DELETE @TempCustomer
다시에 삽입하기 전에