通过批处理在 Sybase 中运行大量 SQL 脚本

Posted

技术标签:

【中文标题】通过批处理在 Sybase 中运行大量 SQL 脚本【英文标题】:Running bulk of SQL Scripts in Sybase through batch 【发布时间】:2013-04-30 12:41:23 【问题描述】:

我使用下面的代码(作为 .bat 文件)递归地执行大量 .sql 文件,使用 SQL SERVER 2008 R2 作为后端:

for /R %%G in (*.sql) do sqlcmd /S [Database Server] /d [Database name] -U [Username] -    P[Password] -i"%%G"
pause

现在,我必须执行大量的 sql 脚本,但这次是 Sybase 作为后端。

请建议我应该做哪些修改才能使其运行在“Sybase”上!!

【问题讨论】:

您正在运行什么 Sybase 产品? 【参考方案1】:

Sybase 的连接字符串非常相似

isql -U [username] -P [password] -S [servername] -D [dbname] -i [scriptname]

所以你的脚本看起来像:

for /R %%G in (*.sql) do isql -S ServerName -D DbName -U Username -P Password -i"%%G"
pause

它应该只需要很少的改动就可以在 Sybase 和 SQLServer 上运行。

【讨论】:

只是一个查询..在 sql server 中我们不使用端口号连接到数据库服务器,但在 sybase 中我们使用端口号..所以我是否需要在我的 .bat 中添加它文件,如果是,那么如何? 您的系统上是否安装了 Sybase 客户端?如果是这样,那么您需要将服务器信息(服务器名、主机名、端口号)放在 sql.ini 文件中,该文件通常位于 Sybase 主目录中。 isql 使用它来将 -S[ServerName] 值解析为主机/端口。

以上是关于通过批处理在 Sybase 中运行大量 SQL 脚本的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008,Sybase - 低带宽上的大型选择查询

sybase数据库 如何使用sql语句查询,数据库容量大小和数据库使用量大小

我们正在使用Sybase / ODBC如何在运行长批量SQL查询时处理断开连接?

Sybase 运行从先前查询生成的 SQL

sybase 如何像SQL SERVER一样建立作业,让他能定时运行存储过程

尝试在 .net core web api 上运行 ASE sql (sybase) 时出错“不允许发送或接收数据的请求......”