Ich habe eine komplexe SELECT-Abfrage erhalten, aus der ich alle Zeilen in eine Tabellenvariable einfügen möchte, aber T-SQL lässt dies nicht zu.
In diesem Sinne können Sie keine Tabellenvariable mit SELECT INTO- oder INSERT EXEC-Abfragen verwenden. http://odetocode.com/Articles/365.aspx
Kurzes Beispiel:
declare @userData TABLE(
name varchar(30) NOT NULL,
oldlocation varchar(30) NOT NULL
)
SELECT name, location
INTO @userData
FROM myTable
INNER JOIN otherTable ON ...
WHERE age > 30
Die Daten in der Tabellenvariablen werden später verwendet, um sie wieder in verschiedene Tabellen einzufügen / zu aktualisieren (meistens Kopie derselben Daten mit geringfügigen Aktualisierungen). Das Ziel wäre es, das Skript einfach ein bisschen lesbarer und leichter anpassbar zu machen, als es SELECT INTO
direkt in die richtigen Tabellen zu bringen. Die Leistung ist kein Problem, da sie rowcount
relativ klein ist und nur bei Bedarf manuell ausgeführt wird.
... oder sag mir einfach, ob ich alles falsch mache.