gpt4 book ai didi

SQL Server 'Resume Next' 等效项

转载 作者:行者123 更新时间:2023-12-02 01:22:49 25 4
gpt4 key购买 nike

我正在 VB.net 中开发一个项目,该项目获取包含 T-SQL 的大型文本文件并针对本地 SQL 数据库执行它们,但我遇到了错误处理方面的问题。

我正在使用以下技术:

  • VB.net
  • 框架3.5
  • SQL Express 2005

我尝试执行的 SQL 大多是直接的,但我的应用程序完全不知道其中包含的架构或数据。例如:

UPDATE mytable SET mycol2='data' WHERE mycol1=1
INSERT INTO mytable (mycol1, mycol2) VALUES (1,'data')
UPDATE mytable SET mycol2='data' WHERE mycol1=2
INSERT INTO mytable (mycol1, mycol2) VALUES (1,'data')
UPDATE mytable SET mycol2='data' WHERE mycol1=3

上面是我正在执行的示例,但这些文件每个将包含大约 10,000 到 20,000 条语句。

我的问题是,当使用 sqlCommand.ExecuteNonQuery() 时,我收到一个异常,因为第二个 INSERT 语句将命中表上的主键约束。

我需要知道发生了这个错误并记录它,而且还处理任何后续语句。我尝试将这些语句包装在 TRY/CATCH block 中,但我无法找到处理错误的方法,然后继续处理其他语句。

查询分析器似乎以这种方式运行,但在使用 sqlCommand.ExecuteNonQuery() 时则不然。

那么,是否有一个相当于“Resume Next”的 T-SQL 或其他某种方式,我可以在不引入大量字符串处理的情况下完成此操作?

非常感谢任何帮助。

最佳答案

SQL Server 确实有 Try/Catch 语法。请参阅:

http://msdn.microsoft.com/en-us/library/ms175976.aspx

要在您的文件中使用此功能,您要么必须重写文件本身以使用 try/catch 语法换行每一行,要么您的代码必须以编程方式修改文件内容以换行每一行。

没有与“On Error Resume Next”等效的 T-SQL,为此感谢 Cthulhu。

关于SQL Server 'Resume Next' 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1411057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com