在执行osql时加上[-o output_file] 参数,执行完后查看这个文件的内容,判断是否执行及是否成功执行。
或用VB以文本文件方式打开.sql 文件,读入里面的SQL语句,并传递给MSSQL执行,判断执行结果当然也好办了。

解决方案 »

  1.   

    我这个sql文件是用来生成大型数据库的,有2M多,vb里打不开这样大的文本,在不把这个文件拆成几个小文件的情况下,是否有更好方法,谢谢!
      

  2.   

    你可以在SQL SERVER端写一段STORED PROCEDURE,调用该段.SQL,然后在VB中调用STORED PROCEDURE,通过返回值来判断.SQL的执行情况.
    顶楼的方法也可以,可以通过OSQL OR ISQL来运行一段.SQL.
      

  3.   

    我对(VB以文本文件方式打开.sql 文件,读入里面的SQL语句,并传递给MSSQL执行)这段方法不太理解,你那里有关于MSSQL执行例句么,谢谢赐教
      

  4.   

    SORRY.看错了,你是生成大型数据库的的脚本,如果太大,你可以分段执行,先是CREATE DATABASE,在CREATE TABLE AND INDEX....,
    不过给你一个建议,最好不要在VB中调用.SQL生成DATABASE,你可以用VB生成客户段,在写一段BAT文件手动CREATE DATABASE,
    下面是我的一段脚本:
    createdatabase.bat
    @rem **************************************************************************
    @rem Ensure usage.
    @rem **************************************************************************
    if [%1] == [] goto USAGE
    if [%2] == [] goto USAGE
    if [%3] == [] goto USAGE
    if [%4] == [] goto USAGE@rem **************************************************************************
    @rem Database creation: devices, database, users, ...
    @rem **************************************************************************
    @echo **************************************************************************
    @echo creating database...
    @echo **************************************************************************
    @isql -S %2 -U %4 -P %5 -d master -n -i %1\dbcreate.sql -o %1\dbcreate.out@echo **************************************************************************
    @echo initialising database...
    @echo **************************************************************************
    @isql -S %2 -U %4 -P %5 -d %3 -n -i %1\dbconfig.sql -o %1\dbconfig.out@rem **************************************************************************
    @rem End of processing.
    @rem **************************************************************************
    goto EXIT@rem **************************************************************************
    @rem Usage.
    @rem **************************************************************************
    :USAGE
    @echo usage: database.bat db_path server_name database_name sa_user  [sa_pswd]
    @goto EXIT@rem **************************************************************************
    @rem Exit point.
    @rem ****************************************************************