SQL 2012 :: Error And Transaction Handling In Server

May 3, 2015

I'm taking the liberty to announce the availability of a suite of articles on my web site about error and transaction handling in SQL Server. In total there are three main parts and three appendixes.

The first part is a short jumpstart, while Part Two is a long in-depth discussion of what can happen in SQL Server in case of an error and what commands that are available. Part Three covers implementation and has lot of examples as well as a facility for logging and raising errors.

The appendixes cover special areas: linked servers, the CLR and Service Broker.

Start at [URL] ....

View 1 Replies


ADVERTISEMENT

Transact SQL :: Error And Transaction Handling For Nested Procedures

Sep 16, 2015

We have a required to run multiple procedures in Single Go . And Error Occurred in any Procedure the it will rollback all the changes( Either all Proc run or None)

DECLARE @StartTime DATETIME=getdate(), @EndTime DATETIME=getdate()-1 , @Message VARCHAR(400)  

BEGIN TRY 
SET XACT_ABORT ON
BEGIN TRANSACTION

EXEC PROC1 @StartTime,@EndTime,@Message OUTPUT --[ Error Handling done here]
EXEC PROC2 @StartTime,@EndTime,@Message OUTPUT --[ Error Handling done here]

[Code] ....

Problem Statement is its not capturing the Error Message from Either Proc1 or Proc 2., its Capturing the Flat Message (The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction). How do i capture the Error Occurred in Proc 1 or Proc 2  into Log Tables.

View 7 Replies View Related

SQL 2012 :: SSIS FTP Task Error Handling - Files Not Found

Nov 2, 2015

When my ForEach Loop runs, when a file does not exist on the server, I am getting a File does not exist error.I would prefer to write a mesaage to my log and then move on to the next step successfully.When I got to Event Handlers and select OnTaskFailed, what do I want to do from here?

View 0 Replies View Related

SQL Server 2012 :: Handling Odd Date Format

Aug 21, 2015

I need to handle date format "41981".

View 9 Replies View Related

SQL Server 2012 :: Handling Flat File Destinations Dynamically?

Feb 5, 2015

After performing a join operation on two tables i get the below resultset

pid, fname, typename, pname, pcost

1, cad, bars, product-1, 100

2, har, witte, product-2, 120

3, nes, bars, product-3, 119

Now i need to create files with the obtained resultset like

Column 'fname' is the folder name and 'typename' should be the file in the particular folder.

For example the first record should be inserted into file name 'bars.txt' in the folder 'cad' and third record should be created in file name 'bars.txt' in the folder 'nes'.

View 2 Replies View Related

Handling Transaction

Mar 8, 2004

hi friends,

I like to put a set of sql statements under a transaction and wish the sql server to take care of commit / roll back the entire set depending upon the success/failure of the statements in the set. I want the whole set is either to success or to failure.

When I go through the docs, i find that SQL Server 2000 operates three transaction modes:
Autocommit transactions : Each individual statement is a transaction.

Explicit transactions : Each transaction is explicitly started with the BEGIN TRANSACTION statement and explicitly ended with a COMMIT or ROLLBACK statement.

Implicit transactions: A new transaction is implicitly started when the prior transaction completes, but each transaction is explicitly completed with a COMMIT or ROLLBACK statement.

As one can see, it seems that it is not possible to define "atomic compound sql statements". Even if i used explicit transaction, it is not possible to achieve this, since i couldn't find a mechanism to handle errors for a group of statements.

I wonder how to write atomic compound sql statement in the sql server.
can anybody please help me on this....

Jake

View 2 Replies View Related

Transaction Handling Problem

May 20, 2008

Hi all i am using Vs 2005 for Web application Development.
At one place i have to update 2 tables and i have to insert in 1 table.For that i am using following function.
But i am getting error pls help me.
My function is.
Public Function UpdateItemDetails(ByVal executemode As ExecuteMode, ByVal Remarks As String, ByVal userid As String, ByVal ItemDetails As ArrayList, ByVal rfsno As String, ByVal rfsstatus As String) As Integer
Try
Dim sql As String
Dim con As New SqlConnection(conString)
con.Open()
cmd.Connection = con
trans = con.BeginTransaction()
cmd.Transaction = trans
''Updating TSMS_RFSITEMDETAILS Table.For Each acc As item1 In ItemDetails
Dim Itemid As String = acc.INameDim quantity As String = acc.QUANTITY
Dim Total As String = acc.TOTAL
sql = "update " + tabPrefix + "RFSITEMDETAILS set QUANTITY=@QUANTITY,TOTAL=@TOTAL,REMARKS=@REMARKS where ITEM_ID=@ITEM_ID"cmd.Parameters.Add("QUANTITY", SqlDbType.NVarChar, 50).Value = acc.QUANTITY
cmd.Parameters.Add("TOTAL", SqlDbType.NVarChar, 255).Value = acc.TOTALcmd.Parameters.Add("ITEM_ID", SqlDbType.Int, 10).Value = acc.INamecmd.Parameters.Add("REMARKS", SqlDbType.NVarChar, 50).Value = Remarks
cmd.CommandType = CommandType.Text
cmd.CommandText = sql
cmd.ExecuteNonQuery()Next
''Updating TSMS_RFS Table.
sql = "update " + tabPrefix + "RFS SET RFS_STATUS=@RFS_STATUS,UPDATEDBY=@UPDATEDBY where RFS_NO=@RFS_NO"
cmd.Connection = concmd.Parameters.Add("RFS_STATUS", SqlDbType.Int, 50).Value = rfsstatus
cmd.Parameters.Add("RFS_NO", SqlDbType.NVarChar, 10).Value = rfsnocmd.Parameters.Add("UPDATEDBY", SqlDbType.Int, 50).Value = userid
cmd.CommandType = CommandType.Text
cmd.CommandText = sql
cmd.ExecuteNonQuery()
''Inserting TSMS_ORDER_STATUS_HISTORY Table.
cmd.CommandText = "insert into " + tabPrefix + "ORDER_STATUS_HISTORY(RFS_NO,ORDER_STATUS_ID,UPDATEDBY)values(@RFS_NO1,@ORDER_STATUS_ID,@UPDATEDBY1)"cmd.Parameters.Add("RFS_NO1", SqlDbType.NVarChar, 50).Value = rfsno
cmd.Parameters.Add("ORDER_STATUS_ID", SqlDbType.Int, 50).Value = rfsstatuscmd.Parameters.Add("UPDATEDBY1", SqlDbType.Int, 50).Value = userid
cmd.ExecuteNonQuery()
trans.Commit()Catch ex As Exception
_LastError = ex
trans.Rollback()
Finally
con.Close()
End Try
End Function
 
I am getting following error Second time in For loop when control reached to
cmd.ExecuteNonQuery(). This Statement.
Error is:  The variable name '@QUANTITY' has already been declared. Variable names must be unique within a query batch or stored procedure.
Please Help me.
 

View 2 Replies View Related

Handling SQL Exceptions In CLR Transaction

Sep 28, 2007

Hi there,

We are running into problems using CLR stored procedure in SQL Server 2005.
We are using a transaction scope (ambient transaction).
If an SQL exception with class 16 is thrown, and this exception is directly caught (and handled) then the transaction is somehow no longer valid.
Subsequent use of this transaction gives the message "The current transaction cannot be committed and cannot support operations that write to the log file. Rollback the transaction".

Is there a way to gracefully handle the SqlException and continue the transaction?

Regards,

Frans Z. and Rine le C.



View 1 Replies View Related

Error Handling In SQL Server

Apr 26, 2000

How to capture errors occured in stored procedures in case SQL SERVER7?

View 1 Replies View Related

SQL Server Error Handling

Apr 4, 2006

Hi I think by virtue of not being able to find reference to this I have my answer however.... You trap an error, check it and know that you are happy with it - it isn't an issue. Is it possible to prevent that specific error (number, message - the lot) being passed to the client so developers don't need to handle the error a second time? Ta db chucks :D

View 9 Replies View Related

Handling Out-dated Transaction Records

Sep 1, 2006

For performance issue, I believe many program should have a house-keeping procedure to clean up transaction history. Is there any best practice to perform this? Or should it be done simply by moving transaction data from the transaction table into a history table? Any better or consideration that I should be concerned of?

View 1 Replies View Related

Error Handling W/o Using Cursors In SQL Server 2K

Jan 13, 2008

Hi,

I've the following program structure:

For every record
-- insert into table1
-- insert into table2
....

if I encounter an error in the table1 insert, is there any way (other than using cursors) to continue processing the next record?

Thanks for your help.

Subha Fernando



View 11 Replies View Related

REAL Project ETL Package Transaction Handling

Dec 9, 2007

Hello,
I am reading Microsoft REAL project ETL part. I find that it uses neither transaction nor checkpoints throughtout the packages. I am wondering if something goes wrong with the process and the process aborts in the middle,how are we going to handle this. Any particular reson not using transaction? Is it best practice without using transaction for performance consideration and log volumn? I am new to SSIS. I would like to follow the best practice. Thanks for advice..


Regards

Jerry

View 6 Replies View Related

SQL Server (2005) - SQL Job Steps / Error Handling

Apr 4, 2008

We have several jobs that if any step fails, we need to continue with the next step. Due to this we have the both 'On Success Action' and 'On Failure Action' set to 'Go to the next step'. Our only issue is that when all the steps are done we still require the job itself to fail.

So my question is this, is there anyway the status of a job can be queried to determine if any of it's steps failed?

View 6 Replies View Related

Triggers Error Handling In MS-SQL Server 2000

Oct 24, 2007


We have trigger on a table. The trigger implementation is to insert a record in another table. If any error occurred in the trigger then the trigger should log the error to a file on the file system.

CREATE TRIGGER [myTRIGGER] ON [dbo].[MyTest]
AFTER INSERT
AS
declare @errorcode int;
INSERT INTO MySecondTable (id, myvalue) values (null, 'hey')
set @errorcode=@@ERROR
if (@errorcode <>0)
print 'Error occurred with error code "' + CONVERT(varchar, @@ERROR) + '"'

Problem
If the insert statement fails, for example because of a null violation, then trigger aborts and never reaches the next step in the trigger T-SQL code.
IS this a limitation or there's somthing wrong on the above code?
Thanks

View 6 Replies View Related

SQL 2012 :: Transaction Log Shipping Secondary Error - Tuf Is Not A Valid Undo File For Database

Jun 18, 2015

I received an alert from one of my two secondary servers (all servers are running 2012 SP1):

File 'E:SQLMS SQL ServerMSSQL11.MSSQLSERVERMSSQLDATAMyDatabaseName_DateTime.tuf' is not a valid undo file for database 'MyDatabaseName (database ID 8). Verify the file path, and specify the correct file.

The detail in the job step shows this additional information:

*** Error: Could not apply log backup file 'MyDatabaseName_DateTime.trn' to secondary database 'MyDatabaseName'.(Microsoft.SqlServer.Management.LogShipping) ***

*** Error: Table error: Page (0:0). Test (m_headerVersion == HEADER_7_0) failed. Values are 0 and 1.

Table error: Page (0:0). Test ((m_type >= DATA_PAGE && m_type <= UNDOFILE_HEADER_PAGE) || (m_type == UNKNOWN_PAGE && level == BASIC_HEADER)) failed. Values are 0 and 0.

Table error: Page (0:0). Test (m_freeData >= PageHeaderOverhead () && m_freeData <= (UINT)PAGESIZE - m_slotCnt * sizeof (Slot)) failed. Values are 0 and 8192.
Starting a few minutes later, the Agent Job named LSRestore_MyServerName_MyDatabaseName fails every time it runs. The generated log backup, copy, and restore jobs run every 15 minutes.

I fixed the immediate problem by running a copy-only full backup on the primary, deleting the database on the secondary and restoring the new backup on the secondary with NORECOVERY. The restore job now succeeds and all seems fine. The secondaries only exists for DR purposes - no one runs reports against them or uses them at all. I had a similar problem last weekend on a different database that is also replicated between the same servers. I've been here for over a year, and these are the first instances of this problem that I've seen. However, I've now seen it twice in a week on the same server.

View 0 Replies View Related

Enable Error Handling When Writing Custom Source Component /custom Error Handling Component.

Apr 21, 2006

1) We are writing a custome Source component for Oracle with OCI calls, Could some one please let me know how to Enable Error Handling for the Same,

2) Is it possible to write Custome Error Handeling Component for SSIS? if yes could you please help me on how to write it.

Thanks in advance.

View 1 Replies View Related

Handling SQL RollBack Transaction For More Records In A Single Process

Mar 6, 2008

I have over 500 transaction records in a single DB process handling within SQL transaction (Begin, Commit, RollBack and End).
Is there any limitation for the following rollbacktransaction function to handle more records (eg. over 500 records)? Public Shared Sub RollBackTransaction()
Dim transactionObj As Object
Try
transactionObj = SqlTransaction.GetExistingTransaction
If (Not IsNothing(transactionObj)) Then
CType(transactionObj, SqlTransaction).RollBack()
End If

Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub
 
 

View 2 Replies View Related

Linked Server Error Handling In Stored Procs.

Jun 29, 2004

I would like to capture any errors thrown by linked server in my stored procedure, How do I do this? eg: Select statement in sp to remote server fails if login credentials were changed for some reason on remote server. @@error is not able to capture this error and stored procedure is terminated when this type of error occurs.

View 1 Replies View Related

DTS Import - Error Handling And Scheduling- SQL Server 2000

Mar 10, 2002

Hi,
I would like to transfer data from an oracle database to SQL server database 2000. I am using DTS Export/ Import Wizard for this purpose.
My queries are:
1. How can I write the write the Start time, End time, data records that failed to a log file with minimal amount of coding. (I found that Active X scripts can be written although the coding is quite complex).
Can I get some kind of pointers to simple coding that can ensure I log time of run of DTS and errors if they occurred.

2. There is an error log written by DTS, but this is written only if an error occurs and the details of error are not written. I am looking to log successful transfers too. Can the DTS package be modified, with minimal code to achieve this objective?

3. I tried scheduling the DTS through the Edit window that SQL Server 2000 provides but am not able to change the time of schedule.
How do I schedule it?


Thanks,
Karthik

View 1 Replies View Related

Error 8525: Distributed Transaction Completed. Either Enlist This Session In A New Transaction Or The NULL Transaction.

May 31, 2008

Hi All

I'm getting this when executing the code below. Going from W2K/SQL2k SP4 to XP/SQL2k SP4 over a dial-up link.

If I take away the begin tran and commit it works, but of course, if one statement fails I want a rollback. I'm executing this from a Delphi app, but I get the same from Qry Analyser.

I've tried both with and without the Set XACT . . ., and also tried with Set Implicit_Transactions off.

set XACT_ABORT ON
Begin distributed Tran
update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.TRANSACTIONMAIN
set REPFLAG = 0 where REPFLAG = 1
update TSADMIN.TRANSACTIONMAIN
set REPFLAG = 0 where REPFLAG = 1 and DONE = 1
update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.WBENTRY
set REPFLAG = 0 where REPFLAG = 1
update TSADMIN.WBENTRY
set REPFLAG = 0 where REPFLAG = 1
update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.FIXED
set REPFLAG = 0 where REPFLAG = 1
update TSADMIN.FIXED
set REPFLAG = 0 where REPFLAG = 1
update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.ALTCHARGE
set REPFLAG = 0 where REPFLAG = 1
update TSADMIN.ALTCHARGE
set REPFLAG = 0 where REPFLAG = 1
update OPENDATASOURCE('SQLOLEDB','Data Source=10.10.10.171;User ID=*****;Password=****').TRANSFERSTN.TSADMIN.TSAUDIT
set REPFLAG = 0 where REPFLAG = 1
update TSADMIN.TSAUDIT
set REPFLAG = 0 where REPFLAG = 1
COMMIT TRAN


It's got me stumped, so any ideas gratefully received.Thx

View 1 Replies View Related

Formview - Exception Handling A Sql Server Raised Error On Insert

Dec 2, 2005

I'm trying to get to grips with the formview control and have a problem regarding where an exception is raised if SQL server raises an error when an insert is taking place. I am new to both asp.net & c#
I have put the following code in the SqlDataSource2_Inserted & Formview1_Inserted  events as a way of determining where the exception is raised:
if (e.ExceptionHandled){   string exceptionmessage = e.Exception.Message;   lblStatus.Text = exceptionmessage;}
These two events are the only one's that have the ExceptionHandled and Exception properties.
I run the code with data that will raise a duplicate key error from SQL Server but the error is not being caught by either of these two handlers. All I get is a page that starts with
 Server Error in '/SourceCode' Application.


Violation of UNIQUE KEY constraint 'IX_reftblAntigens'. Cannot insert duplicate key in object 'reftblAntigens'.The statement has been terminated.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Violation of UNIQUE KEY constraint 'IX_reftblAntigens'. Cannot insert duplicate key in object 'reftblAntigens'.The statement has been terminated....
 Is there somewhere else I should be looking to handle this sort of thing? I thought using the databound controls would make life easier but I'm actually finding it more of a pain than coding everything myself.

View 4 Replies View Related

SQL Server 2008 :: Error Handling In Called Stored Procedures?

Apr 14, 2015

I have one main stored procedure. It calls other 10 stored procedures by giving input parameters.

Do I want to implement Begin Try/Begin catch in each sub procedures or in main procedure only.

View 2 Replies View Related

SQL Server 2012 :: Backed Up Transaction Log - Log Still Same Size

Feb 24, 2015

I backed up my transaction log file using this:

BACKUP LOG iTest2_AELetters TO DISK = N'nul'(yes I know this breaks the log chain - it's expected in this intance)

But after I run it my t log is exact same size. I have refreshed many times.

I am using SQL Always On on this DB.

View 4 Replies View Related

SQL Server 2012 :: Transaction Log Not Clearing At Checkpoint

Aug 14, 2015

I have a Database that is set to Simple Recovery mode.

It is not clearing the log and the transaction log is growing.

I thought that it would clear the log upon checkpoint?

How can I force the Transaction Log to clear since NO-TRUNCATE is no longer available?

View 9 Replies View Related

SQL Server 2012 :: CTE To Return All Periods Between First And Last Transaction Date

Jan 21, 2014

I'm trying to create a cte to return a list of lots and every period between the first and last transaction date for each lot. I've gotten this far:

SELECTIntLotKey
,DATEPART(YYYY, StartDate)StartYear
,DATEPART(MM, StartDate)StartPeriod
,DATEPART(YYYY, EndDate)EndYear
,DATEPART(MM, EndDate)EndPeriod

[Code] ....

This gives me the following results:

IntLotKeyStartYearStartPeriodEndYearEndPeriod
271532013120135
28468201312201312
2846920131201312
2847020131201312
28472201312201312
593022013120131
593032013120131

Now what I need is something that looks like this:

LotKeyYearPeriod
2715320131
2715320132
2715320133
2715320134
2715320135

[Code] .....

Some lots may not have any transactions for some of the periods between the start and end dates but I need to report every period between the start and end period for each lot. I have a period table that I thought I could use but haven't come up with a way to get the results I'm after.

View 9 Replies View Related

SQL Server 2012 :: Full Updates To Transaction Table

Jun 27, 2014

I am basically trying to update a table which reflects account transactions. Accounts get paid in full but occasionally balance payments can be reversed and I want to update the table to show this - I need to show which period the account was previously paid in full.I've created a simplified version of the scenario and below are a couple of examples of things I've tried that do not work. I understand why they do not work but I'm struggling to figure out how to update the 'PeriodPrevPaidInFull' field.

create table Trans
(
AccNo int,
Transaction_Period_Index int,
PeriodOpeningBalance money,
DebtBalance money,
PeriodPaidInFull int NULL,
PeriodPrevPaidInFull int NULL,

[code]...

View 9 Replies View Related

SQL Server 2012 :: Run Stored Procedure Without Writing To Transaction Log?

Feb 26, 2015

Any way to have a process run that will not write its changes to the transaction log? I have a process that runs every three hours and has a huge impact on the transaction log (it becomes larger than the database itself). We do hourly backups of the transaction log and normally it is reasonably sized but when this process runs, it gets HUGE.

The process takes source data, massages it and writes it to summary tables. It is not something we need to track as we can recreate the summary tables if needed and it has no impact on the source tables.

Everything is driven through a stored procedure. Is there a way to run a stored procedure and tell it that nothing it does should be written to the transaction log?

View 6 Replies View Related

SQL 2012 :: How To Run Transaction Across Multiple Instances Without Linked Server

May 18, 2015

i want to run a transaction across mulitpule instences of sqlserver with out linked server.

distributed trnasaction can do it with link server , can it do it with out linked server.

View 9 Replies View Related

SQL Server 2012 :: Remove Unwanted P/L Transaction Lines?

Aug 20, 2015

I am creating a report query that returns all unreconciled P/O lines. I am near completion but I am unable to find a way to remove the reconciled records.

I have included a script to produce some sample table, data & query.

The recordset dispalys 6 rows. All reconciled Supplier Invoices are duplicated and have transaction codes 40, 50 and reconcile code of 9 (5024, 921689471).

All unreconciled only appear once and have transaction codes 40 and reconcile code of 0 (4835 & 921978016). These are the only records that I want to show.

CREATE TABLE [dbo].[Purch_Ledger](
[EPDIVI] [nvarchar](3) NULL,
[EPSUNO] [nvarchar](10) NULL,
[EPSINO] [nvarchar](24) NULL,
[EPDUDT] [numeric](8, 0) NULL,
[EPTRCD] [numeric](2, 0) NULL,

[code].....

Whatever I try I cant find a way to get rid of the unwanted records.

View 3 Replies View Related

SQL Server 2012 :: Server Autonomous Transaction Logging

May 14, 2014

I know Oracle provide pragma directives to execute autonomous transactions which i used before on Oracle for logging. Now i want to repeat the same in SQL Server but unfortunately i found such pragmas are not existing in SQL Server.After several google searching, i have found that i can use loopback linked server to generate autonomous transaction calls.

If i have Server A & Server B where server B is a loop back server of Server A and all my objects are existing on Server A. I just wanted to user Server B for logging only. should i have logging tables on Server B? Logging procedures on Server A? and call logging procedures (via Execute ) from application procedures residing on Server A?

View 2 Replies View Related

SQL 2012 :: Setup Of Transaction Replication Between One Publisher And Subscriber In Same Server

Jul 30, 2014

I have a setup of transaction replication between one publisher and subscriber in the Same server.Now, I need to add a new subscriber to the existing publisher. So publisher database name is DB_A and Subscriber 1 name is DB_B. So the new subscriber will be DB_C. Is this kind of setup possible on one server?

If yes then at the time of reinitialization is it going to apply the snapshot on DB_B as well as DB_C?Also let say if due to disk error DB_B gets corrupted then will data be still replicated between DB_A and DB_C? (Assuming publisher, subscriber 1 and 2 are sitting on individual disks).

View 1 Replies View Related

SQL Server 2012 :: Remove Some Database Updates From Transaction Scope?

Mar 4, 2015

I have a stored procedure that does the following

BEGIN TRANSACTION OUTERTXN

BEGIN TRANSACTION
Copy records from live to archive
END TRANSACTION with commit or rollback
execute sproc to write audit log with success or fail
IF transaction was committed
BEGIN TRANSACTION
Delete records from live the archive
END TRANSACTION with commit or rollback
execute sproc to write audit log with success or fail
End IF

END TRANSACTION OUTERTXN with commit if both inner transactions were successful or rollback if either failed

If either inner transaction rolled back execute sproc to write audit log saying whole process is rolling back End IfMy problem is that if the outer transaction rolls back then I am losing the two audit records because they are part of the transaction scope. I want these executes to commit even if the master transaction fails.

View 2 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved