Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – freeTDS bash:在Microsoft SQL Server中执行sql查询大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我可以通过Mint Linux VM使用freeTSD和命令行连接到Microsoft SQL Server 2008实例,以在其上执行sql语句.现在我想在bash脚本中自动执行此操作.我能够成功登录我的bash脚本: TDSVER=8.0 tsql -H servername -p 1433 -D dbadmin -U domain\\Administrator -P password 然后我
我可以通过Mint Linux VM使用freeTSD和命令行连接到Microsoft sql Server 2008实例,以在其上执行sql语句.现在我想在bash脚本中自动执行此操作.我能够成功登录我的bash脚本:

TDSVER=8.0 tsql -H servername -p 1433 -D dbadmin -U domain\\Administrator -P password

然后我有我的SQL查询

USE dbname GO delete from scheR_741_11845@a.tableA where ID > 5 GO delete from scheR_741_11845@a.tableB where ID > 5 GO delete from scheR_741_11845@a.tableC where ID > 5 GO exit

这通过freeTSD命令行手动执行时有效,但是当我放入bash文件时则不行.我关注这篇文章freeTSD & bash.

这是我的bash脚本示例:

echo "USE dbname GO delete from scheR_741_11845@a.tableA where userid > 5 go delete from scheR_741_11845@a.tableB where userid > 5 go delete from scheR_741_11845@a.tableC where ID > 5 GO exit" > tempfile | TDSVER=8.0 tsql -H servername -p 1433 -D dbname -U domain\\Administrator -P password < tempfile

bash脚本的输出是:

locale is "en_US.UTF-8"
locale charset is "UTF-8"
Default database being set to sbdb
1> 2> 3> 4> 5> 6> 7> 8>

然后我的脚本的其余部分被执行.

有人能给我一步一步解答我的问题吗?

解决方法

我不确定你的样品是如何起作用的.

这是我的bash脚本示例:

echo "USE dbname .... exit" > tempfile | TDSVER=8.0 tsql -H servername -p 1433 -D dbname -U domain\\Administrator -P password < tempfile
# ------------------------------------^^^^ ---- pipe char?

尝试使用’;’焦炭.

echo "USE dbname .... exit" > tempfile ; TDSVER=8.0 tsql -H servername -p 1433 -D dbname -U domain\\Administrator -P password < tempfile
# ------------------------------------^^^^ ---- semi-colon

更好的是,使用sHell的“here documents”.

TDSVER=8.0 tsql -H servername -p 1433 -D dbname -U domain\\Administrator -P password <<EOS
     USE dbname 
     GO 
     delete from scheR_741_11845@a.tableA where userid > 5 
     go 
     delete from scheR_741_11845@a.tableB where userid > 5 
     go 
     delete from scheR_741_11845@a.tableC where ID > 5 
     GO 
     exit
  EOS

IHTH.

当前命令行输入:

echo "delete from table where userid > 5
go
delete from table where userid > 5
go
delete from table where ID > 5
GO
exit" < /tmp/tempfile; TDSDUMP=/tmp/freetds.log TDSVER=8.0 tsql -H servername -p 1433 -D dbname -U Administrator -P password <<EOS

大佬总结

以上是大佬教程为你收集整理的linux – freeTDS bash:在Microsoft SQL Server中执行sql查询全部内容,希望文章能够帮你解决linux – freeTDS bash:在Microsoft SQL Server中执行sql查询所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。