Ich habe eine komplexe SELECT-Abfrage, von der ich alle Zeilen in eine Tabellenvariable einfügen möchte, aber T-SQL lässt das nicht zu.
Aus dem gleichen Grund 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 (meist Kopien derselben Daten mit geringfügigen Aktualisierungen). Ziel ist es, das Skript etwas lesbarer und leichter anpassbar zu machen, als wenn man die SELECT INTO
direkt in die richtigen Tabellen. Leistung ist kein Thema, da die rowcount
ist relativ klein und wird nur bei Bedarf manuell ausgeführt.
...oder sagen Sie mir einfach, ob ich das alles falsch mache.