2009-04-02 11 views
0

J'ai défini une variable:Comment utiliser var constant dans SSIS

DateSecondsOffset Int default as 1 

dans un projet de service SQL Server Integration. Je l'utilise comme constante.

Dans une tâche, j'ai SQL suivante pour définir une autre var NextDT:

SELECT dateadd(s, max(timestamp), 1) DT from myTable 

Je voudrais remplacer le 1 avec DateSecondOffset afin que je puisse le modifier en cas de besoin. Puis-je simplement taper le nom var ou le préfixer avec @ ou autre chose?

+0

Est-ce correct? Dts.Variables ("DTSecondsOffset"). Valeur à remplacer 1? –

+0

sélectionnez dateadd (s, max (horodatage), Dts.Variables ("DTSecondsOffset"). Valeur) DT de myTable? –

Répondre

0

Si vous êtes dans un script ..

Dts.Variables("DateSecondOffset").Value 

Si vous faites référence dans un champ ..

Scope::DateSecondOffset 

Remplacer Portée avec votre champ qui se trouve dans la onglet "package explorer" sous variables.

Si vous faites référence dans un SQL ...

SELECT @DateSecondOffset

Assurez-vous de configurer vos paramètres d'entrée/sortie dans une tâche SQL et/ReadOnly Variables ReadWrite sur une tâche de script.

0

Vous devez transmettre une variable de package en tant que paramètre pour une tâche SQL.

Vous pouvez définir le faire
- dans "Exécuter éditeur de tâches SQL" -> "Paramètre Mapping" section
- ou ReadOnlyVariables options (ReadWriteVariables options si vous souhaitez pouvoir changer valeur variable au cours de la tâche) dans le « Script Editor tâche » fenêtre

déclarera alors variable dans la requête SQL et l'initialisation avec le premier paramètre:

DECLARE @DateSecondsOffset INT 
SET @DateSecondsOffset = ? 
SELECT dateadd(s, max(timestamp), @DateSecondsOffset) DT from myTable 

Voir Patrick Index: Passing Variables to and from an SSIS task

+0

SET @DateSecondsoffset =? eu une erreur. Ça ressemble à ça? n'est pas juste dans la syntaxe. J'ai sqlserver 2005 et MVS 2005 –

0

La syntaxe pour référencer un paramètre dans une tâche d'exécution SQL dépend du type de connexion que vous utilisez.

Par exemple, les connexions ADO.NET utilisent @ParameterName. Pour les connexions OleDB, utilisez-vous?

détails peuvent être trouvés ici

http://msdn.microsoft.com/en-us/library/cc280502.aspx

Questions connexes