我正在从Excel运行针对SQL 2008 R2的VBA proc。 SQL在一个事务中包含3个表(发票批次,标题和行)中的几个插入(因此,无法在存储过程中完成 - 我不这么认为)。
我最近遇到了一个问题,即由于连接丢失导致交易处于开放状态,并且导致了一些问题。
所以,我在打开连接后添加了SET XACT_ABORT ON。到目前为止,VBA一直在运行SQL信誉和权限太高。我们将切换到Windows身份验证和最低限度的所需权限。
我搜索了BOL,但无法找到运行SET XACT_ABORT ON所需权限的答案。如果这是答案,我显然不想给他们系统管理员。如果是,那么确保连接丢失的任何其他建议都不会留下开放的转换?
TIA
标记
答案 0 :(得分:0)
我无法找到相关的任何文档,但尝试一下意味着无需特殊权限。
更多信息
我创建了一个只有PUBLIC
访问数据库的用户,然后以该用户身份登录并运行以下SQL。
全部成功运行,暗示运行SET XACT_ABORT ...
语句不需要特殊权限。
set xact_abort on
select 'hello'
set xact_abort off