2017-06-09 1 views
2

Je suis en train de créer une table temporaire et insérer des données dans la table temporaire au sein d'une tâche d'exécution SQL dans un conteneur de boucle foreach.Cartographie des paramètres à l'aide d'une tâche d'exécution SQL

Voici les tâches sql

IF OBJECT_ID('TEMPDB.DBO.#TEMP') IS NOT NULL 
DROP TABLE #TEMP 
GO 

CREATE TABLE #TEMP 
     (...); 

INSERT INTO #TEMP 
     SELECT (...) 
    FROM table t1 INNER JOIN table2 t2 
    ON t1.id = t2.table1_id 
WHERE t1.value = ? 

que je veux avoir un paramètre dans la clause WHERE, mais chaque fois que j'essaie d'ajouter que je reçois cette erreur.

« comprenant plusieurs étapes opération OLE DB erreurs générées. Vérifiez chaque valeur d'état OLE DB, si elle est disponible. Aucun travail n'a été fait. ». raisons possibles de cet échec: problèmes avec la requête, « ResultSet » propriété non définis correctement, paramètres non définis correctement ou connexion non établie correctement «

Quand je coder en dur la valeur de la clause where l'insert fonctionne parfaitement

..

Qu'est-ce que je fais mal sur mon mappage des paramètres?

Voici mes paramètres de mappage des paramètres enter image description here

aussi je ne suis pas en mesure d'utiliser un stocké procédure.

Répondre

1

Il suffit d'aller à Expressions Tab comme le montre la capture d'écran que vous avez fourni et écrire l'expression suivante à la propriété SqlStatmentSource

"IF OBJECT_ID('TEMPDB.DBO.#TEMP') IS NOT NULL 
DROP TABLE #TEMP 
GO 

CREATE TABLE #TEMP 
     (...); 

INSERT INTO #TEMP 
     SELECT (...) 
    FROM table t1 INNER JOIN table2 t2 
    ON t1.id = t2.table1_id 
WHERE t1.value = '" + @[User::Where_Variable] + "'" 

enter image description here

+0

Merci! Cela m'a beaucoup aidé et je l'ai fait fonctionner. J'ai fini par devoir déplacer l'instruction drop vers une tâche SQL séparée. –

+0

@DericPlummer heureux d'aider – Hadi

0

Remplissez une variable avec l'intégralité de votre script SQL et utilisez la variable en tant que SQLSourceType dans votre tâche d'exécution SQL.