关于sql server:ADO连接执行查询的限制

Limits on ADO connection execute queries

我有一个执行很多更新的 SQL 脚本。当我从文本文件中检索脚本(在经典 ASP 页面中)并尝试执行它时,如果我将内容复制并粘贴到 Management Studio 中,它似乎并没有应用我期望的所有更新,查询工作正常。我无法弄清楚为什么会这样。在这样的脚本中可以包含多少个语句/操作是否有限制?

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


Paul 让我走上了正确的道路,谢谢。我多年来一直在编写 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


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

至于错误处理,可以参考@@ERROR...

1
2
3
4
5
6
7
8
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