2010-01-20 8 views
1

J'ai la requête suivante en cours d'exécution sur un MySQL, mais il échoue lorsque je l'exécute sur une base de données SQL Server. Comment devrait-il plaire à SQL Server?Version SQL Server de MYSQL insérer dans

INSERT INTO first_table (pk, data) 
VALUES ((SELECT value 
      FROM second_table 
      WHERE key = 'key'), 
      'other-data'); 

Répondre

0
INSERT INTO first_table (pk, data) 
SELECT value, 'other-data' 
FROM second_table 
WHERE key = 'key' 
+0

Je suis surpris! 27 sec. et j'ai eu une réponse (en fait cinq). Vous obtenez les points si vous avez oublié le point-virgule ;-) – homaxto

+0

merci bien que vous n'avez pas besoin d'utiliser le point-virgule dans MS SQL ...;) – kevchadders

1
INSERT INTO first_table (pk, data) 
SELECT value, 'other-data' 
FROM second_table 
WHERE key = 'key' 
+0

+1 réponse correcte – kevchadders

2

Quelque chose comme ça

INSERT INTO first_table (pk, data) 
SELECT value , 
     'other-data' 
FROM second_table 
WHERE key = 'key' 

Jetez un oeil à INSERT

Charger les données en utilisant les boutons et Execute Options

+0

1 réponse – kevchadders

-1

Vous pouvez utiliser une sous-requête pour récupérer le PK:

INSERT INTO first_table (pk, data) 
SELECT 
    (SELECT value FROM second_table WHERE key = 'key') 
, 'other-data' 
1

Essayez ceci:

INSERT INTO first_table (pk, data) 
SELECT value, 'other-data' 
FROM second_table 
WHERE key = 'key'; 
+0

1 réponse correcte, bien que vous ne devez utiliser le demi-colon ... – kevchadders

+0

Non le point-virgule n'est pas nécessaire, j'essaie juste de prendre l'habitude d'en utiliser toujours un –