Frage

Ich habe einen originalen Tisch MessageQueue mit sechs Spalten. Wenn ich versuche, eine Auswahl in diese Tabelle auszuwählen, wird eine neue (lokale) Tabelle aufgerufen <network domain\user name>.MessageQueue mit nur drei Spalten, wenn ich den folgenden Code verwende. Was mache ich falsch?

declare 
    @TempTable table (idx smallint Primary Key IDENTITY(1,1), OneId int, OtherId int)

declare 
    @OneId int,
    @OtherId int,
    @date datetime = dbo.GetFloorDate(getdate()),
    @i int = 1

insert @TempTable select Id, OtherId from One where @date = (select dbo.GetSomeDate (Id))

select MessageId = 9999, OneId, OtherId into MessageQueue from @TempTable

select * from MessageQueue
War es hilfreich?

Lösung

Ja, SELECT..INTO erstellt einen neuen Tisch

Sie müssen dies benötigen, um einer vorhandenen Tabelle Zeilen hinzuzufügen

INSERT MessageQueue (MessageQueue, OneId, OtherId) 
SELECT MessageId = 9999, OneId, OtherId 
   from @TempTable
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top