如何使用批处理文件运行select语句?

时间:2011-06-28 14:01:43

标签: sql batch-file sql-server-2000 osql

我需要使用批处理文件查询sql server数据库。我将这些cmdlines放在批处理文件中。当我运行批处理文件时。在进行可信连接后,光标停留在那里。

OSQL -E 
use db1
SELECT count(*) FROM table_01 t1 
left join table_02 t2 on t1.tableID = t2.tableID 
WHERE t1.Date < '20110724' 
Go

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我是这样做的。

首先,构建所需的SQL脚本,并将其存储为简单的文本文件。

接下来,使用SQLCMD(或OSQL,或者,思想,ISQL)来调用该文件,如下所示:

SQLCMD -S %1 -E -b -h-1 -I -d tempdb -i BulkDeploy.txt  > BulkDeploy_%DateString%.txt

其中:

  • S指定SQL实例服务器(此处,使用第一个批处理参数指定)
  • 使用NT身份验证
  • b如果SQL遇到错误,则返回批处理ERRORLEVEL可以获取和处理的值
  • h-1不返回标题行(返回IF数据集)
  • 我设置了QUOTED_IDENTIFIER(这在我的脸上爆炸一次,我忘了怎么回事,为什么,从那以后我就把它包括在内)
  • d数据库连接到
  • 我执行以下脚本并在完成后退出
  • &GT;将任何输出定向到指定的文件以进行后续处理

SQLCMD等。人。有很多参数,请在联机丛书中查看。批量参数可以实现进一步的细微之处。

答案 1 :(得分:1)

osql有一个简单的功能。

例如,我使用

从e:\ backupdb.txt运行SQL命令
osql -S servername -U user -P password -i e:\backupdb.txt

它完成了工作