Anweisung 'SELECT INTO' wird in dieser Version von SQL Server - SQL Azure nicht unterstützt

8

Ich bekomme

  

Anweisung 'SELECT INTO' wird in dieser Version von SQL Server nicht unterstützt   in SQL Server

für die folgende Abfrage in der gespeicherten Prozedur

%Vor%

Ich habe etwa 50.000 Datensätze, also entschied ich mich für Temp-Tabelle. Aber überrascht, diesen Fehler zu sehen.

Wie kann ich dasselbe in SQL Azure erreichen?

Bearbeiten: Lesen dieses Blogs Ссылка schlägt vor, dass wir eine Tabelle in Stored-Prozedur zum Speichern von Daten anstelle von Temp-Tabelle erstellen. Ist es unter Nebenläufigkeit sicher? Wird es Leistung treffen?

Hinzufügen einiger Punkte aus Ссылка

  • Jede Tabelle muss einen Clustered-Index haben. Tabellen ohne Clustered Index werden nicht unterstützt.
  • Jede Verbindung kann eine einzelne Datenbank verwenden. Mehrere Datenbanken in einer einzelnen Transaktion werden nicht unterstützt.
  • 'USE DATABASE' kann in Azure nicht verwendet werden.
  • Globale Temp-Tabellen (oder Temp-Objekte) werden nicht unterstützt.
  • Da es kein Konzept für eine übergreifende Datenbankverbindung gibt, ist der Verbindungsserver in diesem Moment nicht das Konzept in Azure.
  • SQL Azure ist eine gemeinsam genutzte Umgebung, und aus diesem Grund gibt es kein Konzept der Windows-Anmeldung.
  • Lassen Sie TempDB-Objekte immer nach Bedarf fallen, da sie Druck auf TempDB erzeugen.
  • Verwenden Sie während des Einfügevorgangs die Option "Stapelgröße", um die Anzahl der einzufügenden Zeilen zu begrenzen. Dadurch wird die Verwendung des Transaktionsprotokollbereichs eingeschränkt.
  • Vermeiden Sie die unnötige Verwendung der Gruppierung oder das Blockieren von ORDER by operations, da dies zu einer hohen Speichernutzung führt.
Murali Murugesan 12.03.2013, 11:32
quelle

4 Antworten

7

SELECT INTO ist eines der vielen Dinge, die Sie in SQL Azure leider nicht ausführen können.

Sie müssen zuerst die temporäre Tabelle erstellen und dann die Einfügung durchführen. Etwas wie:

%Vor%     
mattytommo 12.03.2013 11:42
quelle
4

Die neue Azure DB Update-Vorschau hat dies Problem gelöst:

  

Mit der V12-Vorschau können Sie eine Tabelle ohne Clustering erstellen   Index. Diese Funktion ist besonders hilfreich für die Unterstützung von T-SQL   SELECT ... INTO-Anweisung, die aus einem Abfrageergebnis eine Tabelle erstellt.

Ссылка

    
Jordan B 14.01.2015 01:10
quelle
2

Erstellen Sie die Tabelle mit # Präfix, z. create table #itemsearch und dann insert into . Der Gültigkeitsbereich der temporären Tabelle ist auf die Sitzung beschränkt, sodass keine Probleme mit dem gemeinsamen Zugriff auftreten.

    
David S. 12.03.2013 11:39
quelle
-1

Wie wir alle wissen, muss die SQL Azure-Tabelle einen Clustered-Index haben. Deshalb kopiert SELECT INTO failure Daten von einer Tabelle in eine andere Tabelle. Wenn Sie migrieren möchten, müssen Sie zuerst eine Tabelle mit derselben Struktur erstellen und dann die INSERT INTO-Anweisung ausführen. Für die temporäre Tabelle, die von # gefolgt wird, müssen Sie keinen Index erstellen.

Wie erstellt man einen Index und wie man insert für eine temporäre Tabelle ausführt?

    
Raj kumar 01.08.2015 06:40
quelle