I don't consider "just to ensure that sqlcmd-mode is not required by a script" a valid reason.
Any things to think of before giving the order to enable this setting to my coworkers?
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.
Sign up to join this communityYes, I don't want to work in SQLCMD mode all the time
It suits you but not me
Irritating:
Enabling SQLCMD mode turns off IntelliSense and the Transact-SQL debugger in the Database Engine Query Editor.
Dangerous?
When executed from the command line, the sqlcmd utility permits full interaction with the operating system. When you use the Query Editor in SQLCMD Mode, you must be careful not to execute interactive statements. The Query Editor cannot respond to operating system prompts.
And some limitations of course...
So no flow control or TSQL variable assignments with SQLCMD mode? This is a big disappointment. Not very many SQLCMD keywords are supported and no real flow control commands
It's good, and I'd say you can safely recommend it to people.
I would only be wary about the way that people start using it as an alternative to Dynamic SQL. I see people use SQLCmd variables $(somevar)
instead of using SQL variables @somevar
, which can hurt queries somewhat. But on the whole, there are plenty of good things about SQLCmd mode, and if you're pointing out the odd drawback like this, then I'd suggest you should be fine recommending it.
"Order" might be a bit strong though. ;)