Maison > base de données > tutoriel mysql > Comment insérer plusieurs lignes dans une table SQL Server à partir d'une sous-requête non scalaire ?

Comment insérer plusieurs lignes dans une table SQL Server à partir d'une sous-requête non scalaire ?

Mary-Kate Olsen
Libérer: 2025-01-05 14:11:40
original
686 Les gens l'ont consulté

How to Insert Multiple Rows into a SQL Server Table from a Non-Scalar Subquery?

Insertion de valeurs dans une table à partir d'une sous-requête non scalaire

Dans SQL Server, insertion de valeurs dans une table basée sur une sous-requête qui renvoie plusieurs résultats peuvent être difficiles. Considérons le scénario suivant :

Vous disposez de deux tableaux :

  • article
  • prix

Vous souhaitez insérer des lignes dans le tableau prix avec des valeurs spécifiques pour le Colonnes group, id et price, où les valeurs id sont dérivées d'une sous-requête qui sélectionne les ID correspondants dans articletableau.

Incorrect Approche :

Essayer d'utiliser une sous-requête avec plusieurs résultats comme valeur d'une colonne dans une instruction INSERT peut entraîner une erreur, comme le démontre l'instruction SQL incorrecte suivante :

INSERT INTO prices (group, id, price) 
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);
Copier après la connexion

Solution correcte :

Pour résoudre ce problème, utilisez un Instruction SELECT pour récupérer les valeurs souhaitées et les insérer dans la table cible. Attribuez les valeurs constantes pour les colonnes group et price directement dans l'instruction SELECT :

insert into prices (group, id, price)
select 
    7, articleId, 1.50
from article where name like 'ABC%';
Copier après la connexion

Dans cette instruction, la sous-requête renvoie les ID d'article correspondant aux critères de nom spécifiés et les valeurs constantes 7 et 1,50 sont explicitement attribuées à l'article. groupe et prix, respectivement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal