OSQL直接执行数据库SQL server 脚本文件

时间:2024-04-09 16:11:24

OSQL直接执行数据库SQL server 脚本文件

程序中直接执行SQL 脚本文件,通常是在进程中调用数据库命令行工具osql.exe,现在将调用方式和一些问题解决方案记录下来。
OSQL直接执行数据库SQL server 脚本文件

sqlserver外部命令工具,说白了就是微软作的一个exe程序可以连本机服务器或者其他服务器。我们在程序调用时只要找到执行所需的exe即可:
找到装有sql server 的路径
C:\Program Files\Microsoft SQL Server\140\Tools\Binn
找到两个文件osql.exe 、osql.rll 复制到程序文件夹下

代码中调用:
OSQL直接执行数据库SQL server 脚本文件

问题1
在调用过程中,执行文件路径,FileName引用绝对路径,此处产生问题1:
如果程序在数据服务器或者安装有可以连接SQL server 数据库工具的主机上对路径没有要求,因为osql 用到驱动 odbc sql server driver,安装数据库管理工具回安装此驱动。
OSQL直接执行数据库SQL server 脚本文件

但如果没有该驱动,则需要手动安装。绝对路径是保证能找到执行文件osql.exe。
我们正式环境下数据库和应用是分离的并不在一台服务器上,所以很多人在程序掉用中本地调试或者开发环境中很好用,陌生环境下无法使用而程序也无法捕获错误消息,通常是这个原因造成的。

问题2
我们在程序打包时会把osql 和写好的数据库脚本放到程序相对目录下,安装时默认路径通常在

C:\Program Files\你的程序 这样的路径
但是如果脚本文件在前缀为C:\Program Files 这样的路径是无法读取的

这时的处理办法是给文件路径添加引号
OSQL直接执行数据库SQL server 脚本文件OSQL直接执行数据库SQL server 脚本文件

通常使用osql 工具执行脚本文件速度很快,而且多人维护数据库脚本文件时只要更新文件就可以了,不需要做代码的更改。