CMD执行SQL

前言:

转载请附上连接,本帖原创请勿照抄。

    本文使用C++命令行实现连接SQLServer2008来执行SQL内容。本帖有所借鉴csdn内容,但是大部分都是个人总结心得。使用命令行连接SQLServer有两种方法,一种是使用SQLCmd,另一种是使用OSQL。这两种优缺点是SQLCmd基本上所有版本都会支持,但是OSQL有些版本可能不会支持,但是这两种方法实现的功能都一样,两种字符串的写法也大相径庭。

C++ 命令行执行调用SQLServer两种方法的演示:

int main()
{
	std::cout << "--------  开始执行升级SQL  --------\n";
        /**
        *-U 账号 -P 密码 -i sql文件位置 -d 需要连接的数据库 -s 服务器地址(可以是127.0.0.1也可以是计算机名+实例名)
        *两种方法: 在这里我们演示第一种方法 第二种方法也可以使用
        */
        system("sqlcmd -U 输入账号 -P 输入密码 -i DatabaseTest.sql -d TestServer -s 127.0.0.1");
	//system("osql -S 127.0.0.1 -U 输入账号 -P 输入密码 -d TestServer -i DatabaseTest.sql");
        std::cout << "--------  SQL完成  --------\n"; 
	system("pause");
}

  SQL文件

--文件名&&路径: D:\DatabaseTest.sql
USE [TestServer]
GO
SELECT * FROM ValuedCustomer;
GO
INSERT INTO ValuedCustomer(UserID, UserVIP, UserPlus) values(100010, '老王', 'Black Card')
GO
SELECT * FROM ValuedCustomer;
GO

运行结果:

可能出现的错误以及导致失败的问题

1.命名管道提供程序: 无法打开与 SQL Server 的连接 [2].Sqlcmd: 错误: Microsoft SQL Native Client : 建立到服务器的连接
      允许远程连接这个事实可能会导致失败。Sqlcmd: 错误: Microsoft SQL Native Client : 登录超时已过期。

    解决方法: SQLServer 管理器-->DMS协议-->TCP\IP-->属性
    -->协议: 全部侦听-〉是 已启用-〉是
    -->IP地址 IP3  地址-〉127.0.0.1 TCP动态端口-〉0  TCP端口-〉(不需要更改) 活动-〉是 已启用-〉否
    -->IPAll TCP动态端口-〉随机(不需要更改) TCP端口-〉1433
    --> 重启SQL服务 再次运行升级SQL服务

2.提示 找不到ODBC  13数据源 源连接无效或者失败

    解决方法: 打开控制面板->管理工具->数据源->查看SQL Server的数据源是不是低于ODBC13版本

    ->如果低于就直接按个13版本的->如果高于13版本应该不会出现问题,如果出问题直接安装低版本就好

3.所有命令查询方式:

    解决方案:  在CMD下输入 sqlcmd -? 或者osql -? 就可以看到全部命令提示信息。

    也可以使用 SQLCmd -S localhost -U sa -P123456 -d TestServer -Q "SELECT * FROM ValuedCustomer UserID=1" -o "D:\Data.txt" 来进行查询

4.本文资源文件

    请打开csdn下载链接下载

    下载链接:https://download.csdn.net/download/qq_37529913/12438965

 

感谢您能点击进来观看完本篇文章,如果对您有所帮助请点点赞👍

码字不易,谢谢关注🙏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双子座断点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值