【发布时间】:2015-07-30 02:53:29
【问题描述】:
我是编程新手,但我仍在努力探索某些实现循环的方法。
我有一个运行实验并收集数据的脚本。该脚本使用单个 int 值跟踪测试运行。所以我第一次运行脚本时,收集的数据将在 SQL 表中有一个名为 TestNum 的列,它以 1 开头。下次我运行它时,它将是 2,依此类推。现在的问题是,自从我开始这样做以来,我已经更新了脚本,并且我在一个循环中添加了一个以不同方式获取这个数字的循环,显然它没有经过深思熟虑,因为它只能通过抓取最后一个 TestNum 并添加 1
for /f "delims= " %%a in ('sqlcmd -S SERVER -d DATABASE -Q "SET NOCOUNT ON;
SELECT MAX(TestNum)+1 FROM TABLE"') DO SET TestNum=%%a
最终我的问题归结为:如果我想实现一个循环,如果不存在 TestNum,则设置 TestNum = 1,否则实现上述循环,我知道我可以编写这样的伪代码
If TestNum from SQL Table is null
{
(set TestNum variable in script = 1)
}
Else do (for /f "delims= " %%a in ('sqlcmd -S SERVER -d DATABASE -Q "SET NOCOUNT ON;
SELECT MAX(TestNum)+1 FROM TABLE"') DO SET TestNum=%%a
)
【问题讨论】:
-
请在您的混合描述中如何区分 SQL 列
TestNum和 环境变量TestNum?例如,您的伪代码指的是哪一个?以及所有其他事件? -
我为伪代码添加了一些基本描述。
-
TestNum 不仅仅是 IDENTITY column 有什么原因吗?
-
最简单的原因?该表早于我在这里工作。
标签: sql-server loops batch-file for-loop