比如做一些高级的配置,还比如在客户端或远程执行数据库操作等工作时,isql是很方便的。比如入侵一台有sql服务的主机,入侵sql server后都能干什么?最好的工具的就是isql了。
不 光是微软的sql支持isql,还有sybase的enterprise版本的数据库也支持,sybase的unix版本,isql等工具更是有用武之地 了。isql依赖db-library api的应用程序不支持 sql server 2000 版的某些功能。例如,isql无法访问用ntext数据类型定义的列,并截断任何超过255字节的char、varchar、nchar 或 nvarchar 列。它也无法检索xml 文档形式的结果。除了isql中的这些限制外,osql和isql 支持相同的功能。
isql命令的参数详解:
isql [-u login id] [-p password] [-s server]
isql [-?] | [-l] | [
{ {-u login_id [-p password]} | -e }
[-s server] [-h hostname] [-d use database name]
[-l time_out] [-t time_out] [-h headers]
[-s col_separator] [-w column_width] [-a packet_size]
[-e] [-x max_text_size] [-c cmd_end] [-q “query”] [-q “query”]
[-n] [-m error_level] [-r {0 | 1}]
[-i input file] [-o output file] [-p] [-b] [-o] ]
所有参数要区分大小写,在使用尤其要注意。
-?显示 isql 开关的语法摘要。
-l列出在本地配置的服务器和在网络上广播的服务器的名称。
-u login_id用户登录 id。登录 id 区分大小写。
-p password 是用户指定的密码。如果未使用-p 选项,isql 将提示输入密码。如果在命令提示的末尾使用 -p 选项而不带密码,isql 使用默认密码null)。密码区分大小写。
-s server_name 指定要连接到的 sql server 默认实例。如果未指定服务器,isql 将连接 到本地计算机上的 sql server 默认实例。如果要在网络上从远程计算机执行 isql,则需要此选项。
-h hostname 是使用的客户端的主机名称。工作站名称存储在 sysprocesses.hostname 中并由 sp_who 显示。如果未指定,则采用当前计算机名称。用这个可以欺骗sql server中进程信息中显示的主机名。
-d use database name,用于指定使用数据库名。
-i input file,用于指定装载的sql语句文件。当你不想输入太多sql语句时,你可以写好在一个文件,用这个参数,作为批处理来执行。
以上这些基本上足够用了,下面以服务器abc为例,用户名sa,密码为了空,用isql登录数据库db:
isql -u sa -p -s abc -d db
连接成功的话,在“1>”后面输入sql语句,回车,第二行输入go回车,就执行了上一句sql语句。
sql语句可以分多行输入,直到你执行“go”提交后才执行sql语句。
quit可以退出当前交互式命行模式。