我正在创建一个类库,它将 .SQL 文件作为输入 (FileInfo) 和一个连接字符串。然后它尝试对连接执行 sql 文件。
我决定支持微软的SMO和SQLCMD.exe
在测试中,我注意到在我的环境中的许多机器上,SQLCMD 没有默认安装。我的程序在尝试运行进程 SQLCMD.exe 时出错。
在不搜索整个硬盘驱动器的情况下查找它的正确方法是什么?是否有一个通用的注册表位置来指定它是否已安装?通常在安装时,我认为设置了 PATH 位置。
非常感谢。
最佳答案
我有一台配备 64 位 SQL SERVER (2k8 R2) 的 64 位机器,我的 SQLCMD.EXE 位于 c:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE
.
它也在路径中。
您可以直接从 SQL Server 注册表位置查找路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\ClientSetup\path
或者不同版本的变体。
这里的大问题是 SQLCMD 是客户端工具的一部分,而不是 SQL Server,所以我认为您不能要求 SQL Server 告诉您。当然,除非您在服务器本身上运行。
关于c# - 检测是否安装了 SQLCMD.exe 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8652748/