【发布时间】:2019-06-18 05:58:14
【问题描述】:
以下 SQL 脚本保存在文件中:
WHILE @@rowcount > 0
BEGIN
DELETE TOP(100) t1
WHERE name >= 20000
END
为了在我的软件中执行,我读取文件然后通过以下方法执行脚本:
private static void CreateCommand(string queryString, string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
所以现在我的问题是脚本没有在 MSSQL 服务器上正确执行,条目仍然存在。根本没有例外。
如果我在 Microsoft SQL Server Management Studio 中运行脚本,则脚本正在执行,没有任何问题。
什么会导致这个问题?
【问题讨论】:
-
你能发布
queryString数据吗? -
您是否有理由不做
DELETE FROM t1 WHERE name >= 2000之类的事情?为什么是 while 循环? -
我很警惕
WHERE name >= 20000,闻起来可能是整理/排序问题。甚至可能是数据类型问题。 -
你能不能把它变成一个SP,然后叫它?不确定如何从 ADO.NET 执行过程 T-SQL
-
第一次你不能确定@@rowcount > 0,我建议你将你的逻辑改为do-while语法,例如stackoverflow.com/questions/4487546/…
标签: c# sql sql-server ssms