Attualmente sto utilizzando SQL Server 2008 e sto cercando di creare un'istruzione utilizzando una variabile di tabella per inserire più righe nella tabella. Allo stato attuale, devo inserire le informazioni che vengono aggiunte in 4 punti diversi (2 istruzioni select, 1 insert e 1 update), ma vorrei poter creare una variabile table singola, quindi devo solo inserire informazioni una volta. Qualsiasi aiuto/suggerimento sarebbe molto apprezzato.Inserimento di più righe in una tabella di SQL Server utilizzando una variabile di tabella
Questo è un esempio di ciò che sto cercando di cambiare.
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)
Non è chiaro cosa si stia cercando di ottenere: perché un solo TVP potrebbe sostituire due selezioni, un inserto e un aggiornamento? – Oded
Puoi spiegare la tua domanda in modo più dettagliato? –
Se si desidera scegliere come target una tabella con una variabile, quindi AFAIK, sarà necessario creare una dichiarazione (preparata) ** all'interno ** della query utilizzando 'CONCAT()' per concatenare la variabile e tutti gli altri codici di query. – inhan