2013-08-01 21 views
8

Diese Fragen Stackoverflow here, here und here alle das gleiche sagen, aber ich kann es nichteinfügen Mehrere Zeilen in Temp-Tabelle mit SQL Server 2012

CREATE TABLE #Names 
    ( 
    Name1 VARCHAR(100), 
    Name2 VARCHAR(100) 
) 

INSERT INTO #Names 
    (Name1, Name2) 
VALUES 
    ('Matt', 'Matthew'), 
    ('Matt', 'Marshal'), 
    ('Matt', 'Mattison') 

Als ich in SSMS oder SQLFiddle laufen bekommen ausführen dieses SSMS ist, scheitert der Einsatz mit der folgenden Meldung auf der ersten Zeile nach VALUES

Msg 102, Ebene 15, Status 1, Zeile 10
falsche Syntax in der Nähe ''.

Diese Fiddle läuft ohne # Zeichen, und das Schema erfolgreich ausgeführt, wenn der Tabellenname #Names ist, aber ich bekomme die folgende Meldung, wenn ich * aus dem Tabellennamen

Ungültige Objekt auszuwählen versuchen '#NAMES': SELECT * FROM #NAMEN

Unterstützt SQL Server 2012 mehrere Einfügungen?

UPDATE Sorry ya'll. SQL-Neuling nicht ahnend, dass SSMS 2012 würde zu beschränken, was auch immer Server Ich bin auf

SELECT @@VERSION 
--Returns: Microsoft SQL Server 2005 - 9.00.5057.00 (X64) 
--Mar 25 2011 13:33:31 
--Copyright (c) 1988-2005 Microsoft Corporation 
--Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) 
+2

Ja, SQL Server ** 2012 ** unterstützt mehrere Einfügungen - fragt mich, ob Sie Mgmt Studio 2012 haben, aber Sie sind wirklich mit einer ** 2005 ** -Instanz verbunden - welche Version erhalten Sie mit SELECT @ @ VERSION' ?? –

+0

Das ist es genau. Ich bin mit SQL Server 2005 verbunden – KyleMit

Antwort

6

Ja, SQL Server 2012 unterstützt mehrere Einsätze - das Feature in SQL Server 2008 eingeführt wurde.

, die mich fragen, ob Sie Management Studio 2012 haben, aber du bist wirklich zu einem SQL Server 2005 Instanz verbunden ...

Welche Version des SQL Server Motors erhalten Sie von SELECT @@VERSION ??

6

Wenn SQLFiddle, stellen Sie sicher, dass der Separator GO gesetzt. Außerdem wird das Schemabuildskript in einer anderen Verbindung als das Ausführungsskript ausgeführt, sodass eine temporäre Tabelle, die in der einen erstellt wird, in der anderen nicht sichtbar ist. Diese Geige zeigt, dass der Code gültig ist, und arbeitet in SQL 2012:

SQL Fiddle

MS SQL Server 2012-Schema-Setup:

Abfrage 1:

CREATE TABLE #Names 
    ( 
    Name1 VARCHAR(100), 
    Name2 VARCHAR(100) 
) 

INSERT INTO #Names 
    (Name1, Name2) 
VALUES 
    ('Matt', 'Matthew'), 
    ('Matt', 'Marshal'), 
    ('Matt', 'Mattison') 

SELECT * FROM #NAMES 

Results:

| NAME1 | NAME2 | 
-------------------- 
| Matt | Matthew | 
| Matt | Marshal | 
| Matt | Mattison | 

Hier ein SSMS 2012 Screenshot: enter image description here

+0

Jetzt frage ich mich, warum es nicht in SSMS funktioniert. Ich habe nur Geige gespielt, damit andere Leute das Problem leichter replizieren können. – KyleMit

+0

Siehe mein Update. Das einzige, was mir einfällt, ist, dass Sie mit einer 2005-Instanz verbunden sind. –