J'ai 2 tables avec des colonnes identiques attendez-vous à un utilisateur. Je souhaite copier toutes les données de la première table dans la seconde et ajouter un utilisateur personnalisé à la colonne qui manque. Jusqu'à présent, sans succès.
La requête est indiquée ci-dessous. Insérer la qualité, la quantité, le fournisseur et l'userid (qui n'existent pas dans la table im obtenue des données) p> toutes les données que je reçois de dbo.gaststation à insérer à dbo.newgastation ajoute cet userid personnalisé à tous les résultats. P> p>
5 Réponses :
au lieu de * code> répertoriez les colonnes de votre Sélectionnez CODE> explicitement et ajoutez la variable à cette liste. DECLARE @userid integer = 5611;
INSERT INTO dbo.newgasstation
(quality,
quantity,
supplier,
userid)
SELECT quality,
quantity,
supplier,
@userid
FROM dbo.gasstation;
Ne fonctionne pas car @userid n'existe pas dans la station dbo.gas
@ S.minchev: oui ça fait. Vous pouvez ajouter autant d'expressions constantes que vous le souhaitez, ils n'ont pas besoin d'exister dans la table, ils ne peuvent même pas exister là-bas. Essayez juste.
Bien dire que le studio de gestion SQL "MSG 515, niveau 16, état 2, ligne 16 ne peut pas insérer la valeur null dans la colonne" UserID ", table 'go41_db.dbo.newgasstation'; la colonne ne permet pas aux nulls. Insérer échoue. Le déclaration a été résiliée. "
@stickybit. . . Wow. Exactement au même moment.
Il suffit d'ajouter @userid code> à la liste CODE> SELECT CODE> LIST: INSERT INTO dbo.NewGasStation (Quality, Quantity, Supplier, UserId)
SELECT Quality, Quantity, Supplier, @UserId
FROM dbo.GasStation ;
Cela ne fonctionne pas, vous ne pouvez pas ajouter @userid à la fin de cette sélection, car il n'existe pas dans la station dbo.gas
@ S.minchev. . . Hein? C'est une constante. Bien sûr, vous pouvez l'inclure dans le Sélectionner code>.
INSERT INTO dbo.NewGasStation (Quality, Quantity, Supplier, UserId) SELECT Quality, Quantity, Supplier, '5611' FROM dbo.GasStation should do the trick (assuming column names are the same for both tables)
Assurez-vous que la table Newgasstation n'existe pas lors de l'exécution de ce
Eh bien, le problème ici est qu'il y a déjà des données ajoutées, donc je ne peux pas faire ça :)
Vous n'avez pas non plus besoin de discriminer les colonnes si vous souhaitez simplement les copier tout. Il suffit d'utiliser le quelque chose comme ceci: p> * code>.