I have a query like this:
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;
The reason I put begin tran tran2 is to ensure that if there are errors I can just do a rollback
I ran the code and the message I got was "query completed with errors"
SSMS did NOT state that some rows were inserted as it usually does.
When I tried to do a rollback tran tran2, it said that that transaction never began
So my question is, were rows committed to the database or not?
If not, then why did it state “query completed with errors” shouldnt it just have said query did not complete due to errors?
Description
Since SQL Server 2005 you can use error handling using
TRYCATCHSample
More Information