Saya memiliki kode berikut di salah satu Sql saya (2008) Disimpan Procs yang mengeksekusi dengan baik:
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
Jadi pertanyaan untuk kalian adalah apakah ada kemungkinan untuk melakukan sesuatu seperti:
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
Sehingga saya bisa menggunakan kembali data ini dari memori dalam pernyataan berikut lainnya? SQL Server cocok dengan pernyataan di atas, namun saya tidak ingin harus membuat variabel terpisah dan menginisialisasi masing-masing melalui pernyataan SELECT terpisah terhadap tabel yang sama .... UGH !!!
Ada saran tentang cara mencapai sesuatu di sepanjang baris tanpa beberapa pertanyaan terhadap tabel yang sama?
declare @t table
sekali, dan jika Anda perlu menggunakannya kembali, tembakDELETE @TempCustomer
sebelum memasukkan ke dalamnya lagi