sql - 如何在批处理文件中将局部变量设置为sql查询的结果?

标签 sql database sql-server-2005 batch-file

有没有办法在局部变量中检索sql查询的结果集?查询将在批处理文件中运行。我想做的是这样的:

set varname = osql -S%dstserver% -d%dstDB% -Q"SELECT name from table_name where Id = %siteId%" %osqluser% -b

varname 是我的局部变量。

我是 sql 的新手,所以非常感谢任何帮助1

最佳答案

将结果写入文件,然后读取文件。在您的情况下,您需要阅读第一行(并且可能 trim 它)。

将以下参数添加到您的查询中:

osql -S%dstserver% -d%dstDB% -Q"SET NOCOUNT ON;SELECT name from table_name where Id = %siteId%" %osqluser% -b -w 9999 -h-1 -o tempres.txt
  • -o ...:输出文件(稍后需要阅读)
  • -h-1: 禁用标题
  • -w 9999:当您的 name 长度超过默认的 80 个字符时,确保它能正确处理情况
  • SET NOCOUNT ON; 在实际查询之前禁用状态字符串,如 (1 row affected)

关于sql - 如何在批处理文件中将局部变量设置为sql查询的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2324780/

相关文章:

sql - 选择一个字段的计数大于一的位置

MySQL:对按时间戳排序的大表进行非常慢的查询(尽管有索引)......

database - 标准化低完整性表

java - SimpleJdbcCall 忽略 JdbcTemplate 获取大小

Sql Pivot 仅前 N 行

sql-server-2005 - 在 Pandas 中传递查询参数

c# - Varbinary 最大图像

sql - 查找 PostgreSQL 中两个大表之间的差异

c# - 从固定装置内杀死 FitNesse

sql-server - SQL Server 2005中的tran和transaction有什么区别