Obecnie używam programu SQL Server 2008 i próbuję utworzyć instrukcję za pomocą zmiennej tabeli, aby wstawić wiele wierszy do tabeli. W obecnej formie muszę wstawić informacje dodawane w 4 różnych miejscach (2 instrukcje wyboru, 1 wstawka i 1 aktualizacja), ale chciałbym móc utworzyć pojedynczą zmienną tabeli, więc muszę tylko wprowadzić informacje raz. Każda pomoc/sugestie będą bardzo mile widziane.Wstawianie wielu wierszy do tabeli programu SQL Server przy użyciu zmiennej tabeli
To jest przykład tego, co próbuję zmienić.
PRINT 'Before'
SELECT GROUPID, ModifiedBy, ModifiedDate
FROM TableXYZ
WHERE groupID in(ID1, ID2, ID3, ID4)
BEGIN TRAN
Insert into TableXYZ
(GROUPID)
VALUES
(ID1), (ID2), (ID3), (ID4)
UPDATE TableXYZ
SET existingdays = 15
,ModifiedBy = @userID
,ModifiedDate = @today
WHERE groupID in(ID1, ID2, ID3, ID4)
Set @RowCount = @@ROWCOUNT
PRINT 'After '
SELECT GROUPID, ModifiedBy, ModifiedDate
FROM TableXYZ
WHERE groupID in(ID1, ID2, ID3, ID4)
Nie jest jasne, co próbujesz osiągnąć - dlaczego jedna TVP mogłaby zastąpić dwie selekcje, wkładkę i aktualizację? – Oded
Czy możesz wyjaśnić swoje pytanie bardziej szczegółowo? –
Jeśli chcesz kierować tabelę ze zmienną, a następnie AFAIK, musisz utworzyć (przygotowaną) instrukcję ** wewnątrz ** zapytania przy użyciu 'CONCAT()', aby konkatować swoją zmienną i cały inny kod zapytania. – inhan