ADO连接的限制执行查询

时间:2014-06-17 14:03:14

标签: sql-server asp-classic ado

我有一个SQL脚本,它做了很多更新。当我从文本文件中检索脚本(在经典ASP页面中)并尝试执行它时,它似乎不会应用我期望的所有更新,如果我将内容复制并粘贴到Management Studio,查询工作正常。我无法理解为什么会出现这种情况。您可以在此类脚本中包含多少语句/操作?

执行命令oConn.Execute strSql也不会失败,它只是移动到经典ASP代码的下一行。我有什么方法可以测试错误吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,我没有足够的声誉来评论您的问题,但您是否尝试将代码包装在TRANSACTION块中?如果出现问题,非常有用。

关于错误处理,you can refer to the @@ERROR ...

DECLARE @ErrorVar INT

RAISERROR(N'Message', 16, 1);
IF @@ERROR <> 0
    -- This PRINT statement prints 'Error = 0' because
    -- @@ERROR is reset in the IF statement above.
    PRINT N'Error = ' + CAST(@@ERROR AS NVARCHAR(8));
GO

答案 1 :(得分:2)

保罗让我在正确的轨道上,谢谢你。我已经编写SQL多年了,但承认我在交易世界中只涉及了一点点。在下面的代码之后,我将其他统计信息和失败消息放入一个表中,在调用脚本后我在ASP代码中查询。

BEGIN TRY BEGIN TRANSACTION --My long update script placed in here
COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 BEGIN ROLLBACK TRANSACTION SET @FailMsg = ERROR_MESSAGE() + ' Failed at line ' + CAST(ERROR_LINE() as varchar) + '.' END END CATCH