我有这样的查询:
use DataIncremental
go
DECLARE @row_terminator CHAR;
SET @row_terminator = CHAR(10); -- or char(10)
BEGIN TRAN tran2
DECLARE @stmt NVARCHAR(2000);
SET @stmt = '
BULK INSERT accn_adjustments
FROM ''C:\Users\agordon\Desktop\incrementaljan2012\accn_adjustments_201112302112.txt''
WITH
(
firstrow=2,
FIELDTERMINATOR = ''|'' ,
ROWS_PER_BATCH=10000
,ROWTERMINATOR='''+@row_terminator+'''
)'
exec sp_executesql @stmt;
SET @stmt = '
BULK INSERT accn_adjustments
FROM ''C:\Users\agordon\Desktop\incrementaljan2012\accn_adjustments_201112312112.txt''
WITH
(
firstrow=2,
FIELDTERMINATOR = ''|'' ,
ROWS_PER_BATCH=10000
,ROWTERMINATOR='''+@row_terminator+'''
)'
exec sp_executesql @stmt;
SET @stmt = '
BULK INSERT accn_adjustments
FROM ''C:\Users\agordon\Desktop\incrementaljan2012\accn_adjustments_201201022101.txt''
WITH
(
firstrow=2,
FIELDTERMINATOR = ''|'' ,
ROWS_PER_BATCH=10000
,ROWTERMINATOR='''+@row_terminator+'''
)'
exec sp_executesql @stmt;
SET @stmt = '
BULK INSERT accn_adjustments
FROM ''C:\Users\agordon\Desktop\incrementaljan2012\accn_adjustments_201201032101.txt''
WITH
(
firstrow=2,
FIELDTERMINATOR = ''|'' ,
ROWS_PER_BATCH=10000
,ROWTERMINATOR='''+@row_terminator+'''
)'
exec sp_executesql @stmt;
我begin tran tran2
这样做的原因是为了确保如果有错误,我可以做一个rollback
我运行了代码,得到的消息是 "query completed with errors"
SSMS并未rows were inserted
像平常那样声明某些内容。
当我尝试执行a时rollback tran tran2
,它表示该交易从未开始
所以我的问题是, 行 是否 已提交到数据库?
如果不是,那么为什么它只说“由于错误而导致查询未完成”呢?
从SQL Server 2005开始,您可以使用以下命令进行错误处理: TRY
CATCH
TRY … CATCH(Transact-SQL) 为Transact-SQL实现错误处理,类似于Microsoft Visual
C#和Microsoft Visual C ++语言中的异常处理。一组Transact-
SQL语句可以包含在TRY块中。如果TRY块中发生错误,则控制权将传递给CATCH块中包含的另一组语句。
BEGIN TRY
BEGIN TRANSACTION
-- do something
COMMIT TRAN -- Transaction successfull, commit!
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN --RollBack if error occured
END CATCH
问题内容: 我有此查询,如果返回成功,则我要处理另一个函数,否则请不要处理该函数。 这是用于运行查询的代码 我想这就像… 问题答案: 这是您可以测试的最简单的方法
当我知道observable在组件/类超出作用域之前肯定会完成(使用或通知)时,我还需要取消订阅它以防止内存泄漏吗?换句话说,是否自动完成/错误的可观察清理,这样我就不用担心了?
问题内容: 更新: 只是在更明显的地方提到它。当我将IN更改为=时,查询执行时间从180缩短为0.00008秒。速度差可笑。 此SQL查询需要180秒才能完成!那怎么可能?有没有一种方法可以优化它更快? 每个表中只有大约5000行,因此它应该不会太慢。 问题答案: (发布我的评论作为答案,显然确实有所作为!) 如果将更改为, 有什么区别? 如果有人想进一步调查,我刚刚进行了测试,发现它很容易复制。
问题内容: 我正在使用自动提交功能连接到SQL Server。如果一切成功,我称之为提交。否则,我就退出。我是否需要显式调用回滚,还是在不提交就关闭连接时自动回滚? 如果很重要,我将从SAS的proc sql内部执行SQL命令。 更新: 如果未调用回滚,则SAS可能会在proc sql块的末尾自动调用commit。因此,在这种情况下,回滚将不仅仅是一个好习惯;这将是必要的。 最终更新: 我们最终切
我正在制作一些lambda来从dynamoDB表中获取数据。 DynamoDB表具有 复合主键 'setId'作为分区键(范围键)(我用这个词'set'作为名词,就像'group'一样) 'id'作为排序键(散列键) 如果我理解正确, 我可以使用setId来查询,因为DynamoDb通过分区键进行集合。 所以我尝试了这个参数。 但它返回错误 Q. 获取集合是否需要排序键? 提前谢谢! 仅供参考)我
问题内容: 在带有Python的Selenium Webdriver中,我想等待Ajax请求完成(jquery库)。我使用Selenium的wait.until()函数。单击submitJquery按钮后,Ajax请求开始。 但我得到以下错误: 完整的代码是: 提前致谢。 问题答案: 您需要将 可调用对象 传递给: