我有我的SQL(2008)存儲特效之一下面的代碼,其執行完美的罰款:SQL Server SELECT INTO @variable?
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語句對同一個表進行初始化。
任何關於如何實現某些事情的建議沒有針對同一個表的多個查詢?
「創建單獨的變量並通過單獨的SELECT語句初始化它們中的每一個」 - 爲什麼你需要這樣做? `聲明@t table`一次,如果你需要重用它,在再次插入之前觸發`DELETE @ TempCustomer` – RichardTheKiwi 2011-01-28 01:40:41