sqlcmd and escape characters

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