I just answered this question but never tried to run it. So I tried it.. https://stackoverflow.com/questions/53521410/sql-command-mode-sql-server-unable-to-print/53521635#53521635
and I thought if Print works then the command will run for sure but to my surprise it didn't
USE [DBName]
:setvar ScriptPath 'C:\Work\'
:setvar SQLFile 'Test.sql'
----- commented PRINT $(ScriptPath) + $(SQLFile) ---- Works
GO
:r $(ScriptPath) + $(SQLFile) --- Doesn't work
-- throws:A fatal scripting error occurred. Incorrect syntax was encountered while parsing :r
:r $(ScriptPath)+$(SQLFile) --- Doesn't work
-- throws:A fatal scripting error occurred. Unable to process :r command
GO
I searched but couldn't find correct answer.
What is needed to be fixed here ?
1 Answer 1
I used double quotes in your setvar
commands and removed the (+) signs from your attempted concatenation. This worked for me
:setvar ScriptPath "C:\Work\"
:setvar SQLFile "Test.sql"
print '$(ScriptPath)$(SQLFile)' ---- Works
GO
:r $(ScriptPath)$(SQLFile) ---- Works
GO
-
yeah.. thanks.. with double quotes :r worked. But Print doesn't . Print works only with single quotes and + . Well anyway this solved my issue.Akshay– Akshay2018年11月29日 06:28:30 +00:00Commented Nov 29, 2018 at 6:28