SQL Server的脚本好像只能在查询分析器里面执行?
以前好像听一位高人给我说过可以在批处理文件中执行SQL Server的脚本功能。如何做?
如何使用批处理命令执行SQL Server的脚本功能?
多谢先!!

解决方案 »

  1.   

    --先把脚本建立成.sql 文件,然后用OSQL 执行.如下:--批量处理多个SQL文件
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**1.sql'
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**2.sql'
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**3.sql'
    master.dbo.xp_cmdshell 'osql -U 用户名 -P 密码 -i c:\**4.sql'
      

  2.   

    exec master..xp_cmdshell 'isql -U sa -P 123 -i c:\脚本.sql'-U sa 是SQL的用户名
    -P 123是SQL的密码
    --如果脚本及路径是变量,则:SET QUOTED_IDENTIFIER OFF 
    declare @ls_path varchar(100)
    set @ls_path = 'c:\test.sql'
    exec("master..xp_cmdshell 'isql -U sa -P -i "+@ls_path+"'")
      

  3.   

    你建立一个bat文件,比如:清空表.bat,在里面输入
    osql -S服务器名 -U用户名 -P密码 -d数据库名  /i"你的.sql脚本文件名"c:\a.sql脚本的内容:
    select * into tb from sysobjectsc:\a.bat批处理文件的内容:
    isql /S"www /Usa /Psa /d"pubs" /i"c:\a.sql"这样,执行c:\a.bat后,就会在pubs数据库中生成一个tb的表
      

  4.   

    抱歉。我太菜了。
    master.dbo.xp_cmdshell 是什么意思?存储过程么?
      

  5.   

    xp_cmdshell
    以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。授予非管理用户执行 xp_cmdshell 的权限。说明  在 Microsoft® Windows® 95 或 Microsoft Windows 98 操作系统中执行 xp_cmdshell 时,将不把 xp_cmdshell 的返回代码设置为唤醒调用的可执行文件的进程退出代码。返回代码始终为 0。
    语法
    xp_cmdshell {'command_string'} [, no_output]参数
    'command_string'是在操作系统命令行解释器上执行的命令字符串。command_string 的数据类型为 varchar(255) 或 nvarchar(4000),没有默认值。command_string 不能包含一对以上的双引号。如果由 command_string 引用的文件路径或程序名称中有空格,则需要使用一对引号。如果使用嵌入空格不方便,可考虑使用 FAT 8.3 文件名作为解决办法。no_output是可选参数,表示执行给定的 command_string,但不向客户端返回任何输出。返回代码值
    0(成功)或 1(失败)结果集
    执行下列 xp_cmdshell 语句将返回当前目录的目录列表。xp_cmdshell 'dir *.exe'行以 nvarchar(255) 列的形式返回。执行下列 xp_cmdshell 语句将返回随后的结果集:xp_cmdshell 'dir *.exe', NO_OUTPUT下面是结果:The command(s) completed successfully.--系统存储过程