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
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
??
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:
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
| NAME1 | NAME2 |
--------------------
| Matt | Matthew |
| Matt | Marshal |
| Matt | Mattison |
Voici une capture d'écran SSMS 2012: