2010-07-16 6 views
2

J'essaie de rendre certains de mes scripts d'installation plus lisibles et moins sujets aux erreurs. Voici le type de code que j'ai maintenant dans mes scripts SQLCMD, que je dirige du studio de gestion:En mode SQL Server Management Studio SQLCMD, puis-je utiliser des variables dans un ensemble d'instructions?

!!bcp "select * from Database1..Table1 where CreateDate > '7/11/2010'" queryout C:\junk\Table1.tab -n -SServerName1 -UTestUser -PTestPassword 
!!bcp "select * from Database1..Table2 where CreateDate > '7/11/2010'" queryout C:\junk\Table2.tab -n -SServerName1 -UTestUser -PTestPassword 

instad d'avoir besoin de coder en dur la date dans chaque déclaration, je voudrais pouvoir faire quelque chose comme ça :

declare @Date1 datetime 
select @Date1 = '7/11/2010' 

!!bcp "select * from Database1..Table1 where CreateDate > @Date1" queryout C:\junk\BCPData\Table1.tab -n -SServerName1 -UTestUser -PTestPassword 
!!bcp "select * from Database1..Table2 where CreateDate > @Date1" queryout C:\junk\BCPData\Table2.tab -n -SServerName1 -UTestUser -PTestPassword 

Notez que dans le deuxième ensemble de code, la date n'est plus codée en dur.

Existe-t-il un moyen de le faire, ou existe-t-il de bonnes alternatives?

merci pour vos idées! Sylvia

Répondre

1

Est-ce que cela fonctionne? (Bit d'une estimation basée sur here)

:setvar date "7/11/2010" 
!!bcp "select * from Database1..Table1 where CreateDate > '$(date)'" queryout C:\junk\Table1.tab -n -SServerName1 -UTestUser -PTestPassword 
!!bcp "select * from Database1..Table2 where CreateDate > '$(date)'" queryout C:\junk\Table2.tab -n -SServerName1 -UTestUser -PTestPassword 

Modifier

Yep. Ce qui suit pour moi

:setvar date "07/07/2008" 
!!bcp "select * from master.sys.objects where Create_Date > '$(date)'" queryout C:\master.tab -n -S(local) -T 
+0

Merci Martin! Cela rendra certains de mes scripts un peu plus simples. – Sylvia

0

Je suis sûr que vous ne pouvez pas faire avec des variables SQL DÉCLARÉ, vérifiez cependant sur this link pour des conseils sur l'utilisation des variables de script au sein SQLCMD - que je me attends à appliquer au mode SQLCMD ainsi.

Questions connexes