web-dev-qa-db-fra.com

Insérer plusieurs lignes dans une table temporaire avec SQL Server 2012

Ces questions StackOverflow ici , ici , et ici disent toutes la même chose, mais je ne peux pas le faire fonctionner dans SSMS ou SQLFiddle

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

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

Lorsque j'exécute c'est SSMS, l'insertion échoue avec le message suivant sur la première ligne après VALUES

Msg 102, niveau 15, état 1, ligne 10
Syntaxe incorrecte près de ','.

Ce ( Fiddle fonctionne sans le # signe, et le schéma s'exécute correctement lorsque le nom de la table est #Names, mais je reçois le message suivant lorsque j'essaie de sélectionner * dans le tableau

Nom d'objet non valide '#NAMES'.: SELECT * FROM #NAMES

SQL Server 2012 prend-il en charge plusieurs insertions?


Mise à jour : Accès apparemment à un serveur 2005 sur SSMS 2012 ....

SELECT @@VERSION --Returns: Microsoft SQL Server 2005
12
KyleMit

Oui, SQL Server 2012 prend en charge plusieurs insertions - cette fonctionnalité a été introduite dans SQL Server 2008.

Cela me fait me demander si vous avez Management Studio 2012, mais vous êtes vraiment connecté à une instance SQL Server 2005 ...

Quelle version de SQL Server moteur obtenez-vous de SELECT @@VERSION ??

9
marc_s

Lorsque vous utilisez SQLFiddle, assurez-vous que le séparateur est défini sur GO. Le script de génération de schéma est également exécuté dans une connexion différente du script d'exécution, de sorte qu'une table temporaire créée dans l'un n'est pas visible dans l'autre. Ce violon montre que votre code est valide et fonctionne dans SQL 2012:

SQL Fiddle

Configuration du schéma MS SQL Server 2012 :

Requête 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

Résultats:

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

Voici une capture d'écran SSMS 2012: enter image description here

9
Sebastian Meine