2017-10-17 15 views
0

Lorsque vous essayez d'insérer une valeur dans une table provenant d'un SQL dynamique, cela fonctionne parfaitement. Toutefois, lorsque je veux insérer plus de 1 valeur avec ce SQL dynamique, cela ne fonctionne plus.SQL Server: Insérer avec des requêtes dynamiques fonctionnant uniquement lorsque 1 Insérer une valeur

INSERT TableName(ColumnName1, ColumnName2) EXEC('SELECT '[email protected]+' from kat.[dbo].[History] '), datum from kat.[dbo].[History] . 

Y a-t-il une raison à cela?

merci mai à l'avance,

Kat

Répondre

1

Votre première déclaration, le SQL dynamique renvoie un jeu de résultats distincts unique, qui est inséré dans votre table. Votre deuxième déclaration, votre traitement comme si c'était une colonne, ce qui n'est pas le cas. Depuis que vous tirez de la même table, vous pouvez soit inclure datum dans votre SQL dynamique, ou rejoindre à dbo.history après le fait

+0

Salut Xedni, Merci pour la réponse. Vous voulez créer ce qui suit: INSERT TableName (ColumnName1, ColumnName2) EXEC ('SELECT' + @ ColumnName + ', datum de kat. [Dbo]. [Historique]') – Katherine99

+0

C'était ma pensée, oui. – Xedni

+0

Salut, merci pour cela. Vous avez raison, cela fonctionne, car les deux colonnes sont dans la même table. Le problème survient lorsque vous souhaitez combiner différentes requêtes dynamiques à partir de tables ou de constantes différentes, de concaves, etc ... – Katherine99