Little typo at the Powershell script.
Main Topics
Browse All TopicsI am having some issues trying to pass an environment variable into a SQL Script, however, I the SET @ContactID = %ContactID% statement returns %C instead of 10.
I can get it to work, but I have to change the batch file to this:
SET ContactID=10
SQLCMD -S . -E -Q "DECLARE @contactid varchar(2) SET @contactid = '%Contact%' PRINT @contactID"
I also tried this, but it doesn't work:
SQLCMD -S . -E -Q "DECLARE @contactid varchar(2) SET @contactid = '%Contact%' :r test.sql"
However, I would like to keep it in the external SQL Script. Is there anyway to do this, maybe using POWERSHELL?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Business Accounts
Answer for Membership
by: sstadPosted on 2009-04-19 at 23:29:55ID: 24182281
There is no easy way to put the value you want into a textfile other than that you create the sql file everytime you start the Powershell script.
Another way you can do this is by creating a stored procedure in SQL Server that accepts a parameter. You can pass the contact value to the stored procedure that will execute your query. It may be a little overdone to create a stored procedure for something so small but it's possible.
If you don't want to use the stored procedure use your own query in the Powershell script.
You can use this script to get the evironment variable and execute the storedp procedure. Execute the sql script in SSMS or through the commandline using SQLCMD.
Put the Powershell script in a file and execute it. It will than execute your stored procedure.
Select allOpen in new window