usage: isql              [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w columnwidth]
  [-a packetsize]        [-e echo input]        [-x max text size]
  [-L list servers]      [-c cmdend]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-n remove numbering]  [-m errorlevel]
  [-r msgs to stderr]
  [-i inputfile]         [-o outputfile]
  [-p print statistics]  [-b On error batch abort]
  [-O use Old ISQL behavior disables the following]
      <EOF> batch processing
      Auto console width scaling
      Wide messages
      default errorlevel is -1 vs 1
"-"后面的字幕区分大小写,你是不是都用小写字母?

解决方案 »

  1.   

    不是我敲入isql后
    屏幕提示:password:
    我在后面输入了123
    结果提示:Msg 18456,Level 14,State 1:
    Login failed for user 'xiao'.
    DB-Library:Login incorrect.
      

  2.   

    isql -E这个参数是什么意思呀?
      

  3.   

    一、你是用Windows 帐号登录到本机的MS sql server,请用 isql -E
    假设windows 帐号 ntuser1 要登录本机MS sql server,要这样做。
    1、以NT帐号ntuser1登陆到Windows2000 professional,不是 MS SQL Server。
    2、isql -S Server -E二、Sql Server 帐号这样做:
    1、将身份验证设为SQL Server 和 Windows。
    2、isql  -U login_id  -P password -S server 
     
    isql
        [-?] |
        [-L] |
        [
            {
                {-U login_id [-P password]}
                | -E
            }
            [-S server_name] [-H wksta_name] [-d db_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)。密码区分大小写。ISQLPASSWORD 环境变量使您得以为当前会话设置默认密码。因此,不需要通过硬编码来在批处理文件中设置密码。如果没有为 -P 选项指定密码,isql 首先检查 ISQLPASSWORD 变量。如果未设置值,isql 使用默认密码 (NULL)。以下示例在命令提示处设置 ISQLPASSWORD 变量,然后访问 isql 实用工具: C:\>SET ISQLPASSWORD=abracadabra
    C:\>isql -E使用信任连接而不请求密码。-S server_name指定要连接到的 SQL Server 默认实例。isql 不支持连接到 SQL Server 2000 命名实例。如果未指定服务器,isql 将连接到本地计算机上的 SQL Server 默认实例。如果要在网络上从远程计算机执行 isql,则需要此选项。-H wksta_name是工作站名称。工作站名称存储在 sysprocesses.hostname 中并由 sp_who 显示。如果未指定,则采用当前计算机名称。-d db_name启动 isql 时发出一个 USE db_name 语句。-l time_out指定 isql 登录超时之前的秒数。如果未指定 time_out 值,则命令无限期地运行。登录到 isql 的默认超时为 8 秒。-t time_out指定命令超时之前的秒数。如果未指定 time_out 值,则命令会无限期地运行;登录到 isql 的默认超时为 8 秒。-h headers指定要在列标题之间打印的行数。默认为每一查询结果集打印一次标题。使用 –1 指定不打印标题。如果使用 –1,则在参数和设置之间不能有空格(可以是 -h-1,不能是 -h –1)。-s col_separator指定列分隔符字符,其默认为空格。若要使用对操作系统有特殊含义的字符(例如 | ; & < >),请将该字符用双引号 (") 引起来。-w column_width允许用户设置屏幕输出的宽度。默认为 80 个字符。当输出行达到其最大屏幕宽度时,会拆分为多个行。-a packet_size使您得以请求不同大小的数据包。packet_size 的有效值介于 512 和 65535 之间。Microsoft Windows NT&reg; 版中的 isql 默认值为 8192;另外,Microsoft MS-DOS&reg; 版中的 isql 默认值为 512,但在该版本中也可以请求更大的数据包。数据包大小的增加可以提高较大脚本执行的性能,在这种执行中 GO 命令之间 SQL 语句的数量很重要。Microsoft 的测试表明 8192 是大容量复制操作典型的最快设置。可以请求更大的数据包大小,但是如果请求不能得到批准,则 isql 默认为 512。-e回显输入。-x max_text_size指定返回文本数据的最大长度,以字节为单位。长于 max_text_size 的文本值将被截断。如果未指定 max_text_size,则文本数据在 4096 字节处截断。-c cmd_end指定命令终止符。默认情况下,通过单独在一行中输入 GO 来终止命令并将其发送到 SQL Server 2000。在重置命令终止符时,不要使用对操作系统有特殊含义的 Transact-SQL 保留字或字符,无论其前面是否有反斜杠。-q "query"启动 isql 时执行查询,但是在查询完成时不退出 isql。(注意查询语句不应包含 GO)。如果从批处理文件中发出查询,可使用 %variables。环境 %variables% 也可用。例如:SET table = sysobjects
    isql /q "Select * from %table%"将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。-Q "query"执行查询,在查询完成时立即退出 isql。将查询用双引号引起来,将查询中嵌入的任何内容用单引号引起来。-n从输入行中删除编号和提示符号 (>)。-m error_level自定义错误信息的显示。显示指定的或更高严重级别错误的消息数、状态和错误级别。不显示严重级别低于指定级别的错误的任何信息。用 -1 指定与消息一起返回所有标题,即使是信息类的消息。如果使用 –1,则在参数和设置之间不能有空格(可以是 -m-1,不能是 -m -1)。-r {0 | 1}将消息输出重定向到屏幕 (stderr)。如果未指定参数,或指定参数为 0,那么仅重定向严重级别为 17 或更高的错误信息。如果指定参数为 1,则将重定向所有消息输出(包括 "print")。-i input_file标识包含一批 SQL 语句或存储过程的文件。小于 (<) 比较运算符可以用来代替 –i。-o output_file标识从 isql 接收输出的文件。大于 (>) 比较运算符可以用来代替 –o。-p打印性能统计。-b指定错误发生时 isql 退出并返回一个 DOS ERRORLEVEL 值。当 SQL Server 错误信息的严重级别为 10 或更高时,返回给 DOS ERRORLEVEL 变量的值为 1;否则,返回值为 0。MS-DOS 批处理文件可以测试 DOS ERRORLEVEL 的值并适当处理错误。-O指定 isql 还原为早期版本的行为。下列功能停用: EOF 批处理
    控制台宽度自动调整
    宽信息 
    该选项还将 DOS ERRORLEVEL 的默认值设置为 –1。
      

  4.   

    -E
    使用信任连接而不请求密码,Sql server 用你当前登录Windows的Windows NT 帐号来登录Sql server。
      

  5.   

    如果我不用-E,将怎么样呢?我用
    isql -U xiao -P 123 -S SERVER
    其中xiao是NT中的帐号,在sql中我也加入了xiao这个帐号 123是xiao在NT中的口令,SERVER中服务器域名.但出错。为什么?
      

  6.   

    查一下这个帐号的身份验证方式是Windows 身份验证还是SQL Server 身份验证?用这个帐号在查询分析和企业管理中试一下
      

  7.   

    我测试过了,用sa可以通过。就是在企业管理中增加的用户名无法通过,我采用的NT用户与sql用户的混合模式。大家说说是什么原因?
      

  8.   

    SERVER中服务器域名?
    你看一下在sql server服务管理器中服务器名写的是什么?
    它是你的服务器名
      

  9.   

    你建的登录采用的是什么身份验证方式?你新增加的是用户还是登录?
    -U指的是登录id
      

  10.   

    你按照我写的做一次:
    1:在企业管理器-..-服务器-安全性-登录-鼠标右键-新建登录...
    (顺便记住服务器名)
    2.在名称处输入:aaaa
    3.选择SQL SERVER身份验证
    4.在“密码:”处输入:22
    5.“确定”并在此输入密码 22
    6:在dos提示符下输入:
    isql -U aaaa -P 22 -S <服务器名> 
    7.输入回车
      

  11.   

    我试过了,采用sql的帐号可以登录。但用NT的帐号不能登录。不知道为什么。
    我用的NT和sql的混合模式。随便问一下。客户端怎么用程序访问服务器的sqlserver中的数据呀!不会是共享服务器数据库吧?
      

  12.   

    重申NT的帐号登录要这样:假设windows NT 帐号 ntuser1 要登录 MS sql server,要这样做。
    1、以NT帐号ntuser1登陆到Windows2000,不是 MS SQL Server。
    2、isql -S Server -E