INF: Operating System Commands and Control of Flow in ISQL or OSQL

ID: Q76784


The information in this article applies to:
  • Microsoft SQL Server versions 4.2x, 6.0, 6.5, 6.5 Service Pack 1 and later, 7.0, 7.0 Service Pack 1


SUMMARY

ISQL and OSQL can issue can issue operating system commands by starting a line with two exclamation points (!!) followed by the command. However, these commands are unconditionally run when encountered by ISQL or OSQL and they cannot take part in the Transact-SQL control-of-flow language.


MORE INFORMATION

For example, if a file called TEST.SQL is created with the following contents


   if 1=2
   !!dir c:\config.sys
   select "One equals two" 

then the operating system command specified on the second line will always be run by ISQL, even though the command is apparently inside an IF control-of-flow condition. Note that the SELECT statement is part of the control of flow and will not be run in this case because 1=2 evaluates to FALSE. When running the following
ISQL /U<login> /P<password> /S<server> /itest.sql

the output that might be returned is:

1> 2>
 The volume label in drive C is GIZMO.
 The Volume Serial Number is 16AA:6729
 Directory of C:\ 

CONFIG   SYS     2054   9-10-91  11:52a
     1 File(s)   28319744 bytes free

2> 3> 

Additional query words: Windows NT

Keywords : kbtool SSrvISQL SSrvProg SSrvTran_SQL SSrvWinNT
Version : winnt:4.2x,6.0,6.5,6.5 Service Pack 1 and later,7.0,7.0 Service Pack 1
Platform : winnt
Issue type :


Last Reviewed: November 5, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.