sqlcmd and escape characters
am 22.11.2007 07:19:48 von Desmodromic
The command below runs fine from within Management Studio
exec sp_MSforeachtable @command1="exec sp_spaceused '?' "
However, I'd like to run it via sqlcmd. I've tried various
combinations of escaping the doulbe and single quotes but without
success.
sqlcmd -E -Q "sp_MSforeachtable @command1=\"exec sp_spaceused '?'\""
Sqlcmd: 'exec sp_spaceused '?'\""': Unexpected argument. Enter '-?'
for help.
Any ideas?
Thanks,
\M
Re: sqlcmd and escape characters
am 22.11.2007 09:20:47 von Erland Sommarskog
Desmodromic (davies_ms@yahoo.com.au) writes:
> The command below runs fine from within Management Studio
>
> exec sp_MSforeachtable @command1="exec sp_spaceused '?' "
>
> However, I'd like to run it via sqlcmd. I've tried various
> combinations of escaping the doulbe and single quotes but without
> success.
>
> sqlcmd -E -Q "sp_MSforeachtable @command1=\"exec sp_spaceused '?'\""
> Sqlcmd: 'exec sp_spaceused '?'\""': Unexpected argument. Enter '-?'
> for help.
Try:
sqlcmd -E -Q "sp_MSforeachtable @command1='exec sp_spaceused ''?'''"
In SQL you use ' delimit strings. " may also work as a string delimiter,
depending on the setting QUOTED_IDENTIFIER, but as this setting is normally
on, stick to ' and double it when nested.
--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downlo ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books .mspx
Re: sqlcmd and escape characters
am 23.11.2007 01:30:09 von Desmodromic
On Nov 22, 5:20 pm, Erland Sommarskog wrote:
> Desmodromic (davies...@yahoo.com.au) writes:
> > The command below runs fine from within Management Studio
>
> > exec sp_MSforeachtable @command1="exec sp_spaceused '?' "
>
> > However, I'd like to run it via sqlcmd. I've tried various
> > combinations of escaping the doulbe and single quotes but without
> > success.
>
> > sqlcmd -E -Q "sp_MSforeachtable @command1=\"exec sp_spaceused '?'\""
> > Sqlcmd: 'exec sp_spaceused '?'\""': Unexpected argument. Enter '-?'
> > for help.
>
> Try:
>
> sqlcmd -E -Q "sp_MSforeachtable @command1='exec sp_spaceused ''?'''"
>
> In SQL you use ' delimit strings. " may also work as a string delimiter,
> depending on the setting QUOTED_IDENTIFIER, but as this setting is normally
> on, stick to ' and double it when nested.
>
> --
> Erland Sommarskog, SQL Server MVP, esq...@sommarskog.se
>
> Books Online for SQL Server 2005 athttp://www.microsoft.com/technet/prodtechnol/sql/2005/down loads/books...
> Books Online for SQL Server 2000 athttp://www.microsoft.com/sql/prodinfo/previousversions/boo ks.mspx
Excellent! Works fine and is just what I was looking for. Many thanks.
\M