I have a situation where i need to insert or update the data from a flat file to a sql server database. The flat file contains nearly one lakh records.
I am using transactions. If all the rows are inserted or updated successfully i am commiting. If there is any error i am rollbacking the transaction.
when rollbacking the transaction it is taking more than 3 to 4 hours.
Hello, I do not know how to implement transaction roll back in asp.net application. I am using SqlHelper class to communicate with my sql db.Thanks, junior
Hello, I have problem for insert multiple query for insert in differenr tabels for a single record. I have mail record for candidate and now i wants to insert candiate labour info, candidate passport detail in diff tabel like candidatLabour and candidatePassport, i used two store procedure for it and i write code for it.and it works fine,but i think that if one SP executed and one record inserted but then some problem occure and 2nd SP not executed then........... so plz help me Thanks
I followed Remus' post about not doing 'fire and forget'.
I have two queues, ProcessingSendQueue and ProcessingReceiveQueue.
Once i receive from ProcessingReceiveQueue, activation SP gets called on ProcessingSendQueue and ends conversation.
However,if I then get an exception, the action of the activation SP ( ie the ending of the conversation ) does not get rolled back... is this possible? I would have thought that the action of the activation SP would get rolled back too.
My ProcessingSendQueue activation SP is as follows:
ALTER PROCEDURE [dbo].[ProcessingSendQueue_AP] AS BEGIN DECLARE @dh UNIQUEIDENTIFIER; DECLARE @message_type SYSNAME; DECLARE @message_body NVARCHAR(4000);
RECEIVE @dh = [conversation_handle], @message_type = [message_type_name], @message_body = CAST([message_body] AS NVARCHAR(4000)) FROM [ProcessingSendQueue];
IF @dh IS NOT NULL BEGIN IF @message_type = N'http://schemas.microsoft.com/SQL/ServiceBroker/Error' BEGIN RAISERROR (N'Received error %s from service [ProcessingReceiveQueue]', 10, 1, @message_body) WITH LOG; END END CONVERSATION @dh; END END
Goofed up and ran an update query. It messed up all the data in a single table. I'm trying not to restore the table from a previous backup since the backup is more than 20 GB. It's going to take forever to restore it. Any advice would be much appreciated!
Hi All, Before posting this, I did search for backing up the transaction log file(.LDF).Currently transaction log file is 4 GB size and I want to reduce it to few MBs.Will the following procedure work? 1)Take the backup of transaction log file by executing the statement- BACKUP LOG <name of DB> TO <name of db>backup
2)Run DBCC shrink file statement to reduce the log file size- DBCC SHRINKFILE(<name of log file>,25) This is as per procedure explained in http://support.microsoft.com/kb/272318
Will this free up 4GB physical space on drive? or anything else I need to do ?
Hello, I'm Designing sql server 2005 SSIS Packages. According to my requirment i have a sequence container. It has few data flow task, on success of one next one is running. If any one of them get failed then it should roll backed all the transaction. Each Data flow task transfering a data from one server to another server in similar table.
I am having a problem backing up my database and TLog files due to alack of local diskspace. The db file is about 30GB and the TLog isabout 20GB each on a different hard disk. Each disk doesn't haveenough available space to accomadate a backup. I also can't shrink thefiles because part of that procedure would require a backup.Question: Can I use a redirected drive for the backup media? Is therea way to trick SQL into allowing this? If the answer is no, doesanyone have a suggestion as to want I should do? I am in the processof requesting more disk space,but that could take a while.Thanks,
I have a design a SSIS Package for ETL Process. In my package i have to read the data from the tables and then insert into the another table of same structure.
for reading the data i have write the Dynamic TSQL based on some condition and based on that it is using 25 different function to populate the data into different 25 column. Tsql returning correct data and is working fine in Enterprise manager. But in my SSIS package it show me time out ERROR.
I have increase and decrease the time to catch the error but it is still there i have tried to set 0 for commandout Properties.
if i'm using the 0 for commandtime out then i'm getting the Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction.
and
Failed to open a fastload rowset for "[dbo].[P@@#$%$%%%]". Check that the object exists in the database.
I'm receiving the below error when trying to implement Execute SQL Task.
"The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION." This error also happens on COMMIT as well and there is a preceding Execute SQL Task with BEGIN TRANSACTION tranname WITH MARK 'tran'
I know I can change the transaction option property from "supported" to "required" however I want to mark the transaction. I was copying the way Import/Export Wizard does it however I'm unable to figure out why it works and why mine doesn't work.
How do I make use of begin transaction and commit transaction in SSIS.
As am not able to commit changes due to certain update commands I want to explicitly write begin and commit statements. but when i make use of begin and commit in OLEDB commnad stage it throws an error as follows:
Hresult:0x80004005
descriptionyntax error or access violation.
its definately not an syntax error as i executed it in sql server. also when i use it in execute sql task out side the dataflow container it doesnt throw any error but still this task doesnt serve my purpose of saving/ commiting update chanages in the database.
I am having some problem with SSIS transaction. Eventhought I tried to imitate the concept that Jamie presented at http://www.sqlservercentral.com/columnists/jthomson/transactionsinsqlserver2005integrationservices.asp
. My workflow is as followed
********************************* For Each ADO.Record in Oracle (transaction=not supported)
If (Certain_Field_Value = 'A')
Lookup Data in SQL DB with values from Oracle (transaction=not supported)
DO Sequence A (Start a Transaction , transaction=required)
INSERT/UPDATE some records in SQLDB(transaction=supported) Finish Sequence A ( transaction should stop here) UPDATE Oracle DB ( Execute SQLTask, transaction=not supported) If (Certain_Field_Value = 'B')
Lookup Data in SQL DB with values from Oracle (transaction=not supported)
DO Sequence B (Start a Transaction , transaction = required)
INSERT/UPDATE some records in SQLDB (transaction=supported) Finish Sequence A ( transaction should stop here) UPDATE Oracle DB ( Execute SQLTask, transaction=not supported) If (Certain_Field_Value = 'C')
------------ ------------ End ForEach Loop ************************************* My requirements are that I want separate transaction for each Sequence A, B, C, etc... If Sequence A transaction fails, the other should still be continuing with another transaction. But I am getting an error regarding the OLEDB Error in next Task (e.g in Certain_Field_Value = 'B') "Lookup Data in SQL DB with values from Oracle ", the error message is ".......Distributed transaction completed. Either enlist this session in a new transaction or the NULL transaction. ". What is it that I am doing wrong? Regards KyawAM
I wrote a stored procedure. It work properly. But I want to catch if any error occurs while executing it. And I want to make roll Back on error .And send the error OUTPUT How can I roolBack the command below and How can I send the error over OUTPUT parameter? execute(@cmdS) Thanks.
Hi, I'm using data flow as flat file source -> derived column ->Data Conversion-> oledb destination I have a fifty thousand record in a delimited file. while processing i got error in 45000th row. In database only 40000 records are there(why is there no all 45000 records). Is there any way to roll back all the 40000 records.
I have an application that allows users to synchronize SQL CE data with the server. I would like to implement the functionality wherein if the synch process hits an error, the whole synchronization rolls back.
Is it possible to roll back the Synchronization process? I am using Merge replication over web in the application.
Hi, I'm planning to install the cumulative hotfix (build 2187) on my sql 2000 clustering server (SP4, 2040). And I would like to know if the cumulative hotfix is able to roll back. If possible, please provide me any information about that. Thanks in advance.
When you dril down on MonthYear you get the detail data:
Month Number of Sales Total Sales
- Jan 2007 10 $610.00
1 $10.00
1 $20.00
1 $30.00
1 $40.00
1 $50.00
1 $60.00
1 $70.00
1 $80.00
1 $100.00
1 $150.00
My question is. I added a filter to the detail data to give the Bottom % =75 of sales. So My detail data only displays the following rows:
Month Number of Sales Total Sales
- Jan 2007 10 $610.00
1 $10.00
1 $20.00
1 $30.00
1 $40.00
1 $50.00
My problem is the group still displays the total of my dataset (as seen above), but I want it to display the total of the detail data group, like below:
Month Number of Sales Total Sales
- Jan 2007 5 $150.00
1 $10.00
1 $20.00
1 $30.00
1 $40.00
1 $50.00
If I change the fields in the group to look at the detail data ,for instance =count(Fields!NumberofSales.Value,"Details_Group") I get an scope error.
How can I display the totals of the detail data in the parent group after I added a filter to the detail data?
Hi again, In ASP.net, is there any elegant way to handle a set of time inserts from a form when the 2nd time is past midnight? Specifically, I have a form with 2 textboxes on it (startTime and endTime) that are set up to accept time values (using AJAX MaskedEditExtender for formatting/validation - pretty cool). This data is posted to a sub that enters the data into a table (T_Details). However, I've noticed that the data inserted as part of the record (SQL field is smalldatetime) doesn't take into account the fact that a time value past 23:59:59 in the "endTime" textbox is a time on the next day - it simply rolls to an A.M. date for the same day as the date for the pre-midnight value from the "startTime" textbox. I'm sure that I can simply do some conditional coding and modify the date if necessary but is there a better way to do it? Thanks as always...this forum is a great resource
hey guys i need help urgently i just ran an update statement without a where statement by mistake and i need to rollback this changes
i;m runnning sql express sp2 and the database is set to recovery model simple
i hace the mdf and ldf file the mdf is 1.5 gb ledf is 65 mb and the last changed date is the same time i ran the update statement so i think the changes are there in the ldf file but i just need to roll back to 1 minute b4 i run the update
The package is corrupt, who knows why, who knows what. It was running fine but there was a bug in an active script. Having failed miserably to debug this (note the ability to put a breakpoint in a script would be nice and dear god do not ask for edit and continue in here, it is bad enough as it is!) i eventually stuck a ref to the winforms namespace and debugged with a hundred messagebox.show statements. I did try to fire up an event that would write to an event tlog and i'm pretty sure that that is where the main problem lies as the package is still trying to load/use/connect to some log options but it did run for a while after i abandoned this path. Either way, I need some clue as to what bits of the xml file i can hack cos that is all i can get access to. 4 miles of xml, somwhere within the errors below are related. Clue me please or its curtains. Note also, the package is corrupt everywhere - in bin, in deployment, could not the last good compile get saved somewhere for recovery purposes as opposed to being overwriten with the bust one?
Error 1 Error loading Copy of pckSplitSourceNQ.dtsx: Element "{AD446434-4355-42C7-AD07-3D64A37C1671}" does not exist in collection "LogProviders". G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
Error 2 Error loading Copy of pckSplitSourceNQ.dtsx: Element "{F43808C7-03B1-4A09-86B1-08274073DA5C}" does not exist in collection "Executables". G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
Error 3 Error loading Copy of pckSplitSourceNQ.dtsx: Error loading value "<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts" IDREF="{F43808C7-03B1-4A09-86B1-08274073DA5C}" DTS:IsFrom="0"/>" from node "DTS:Executable". G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
Error 4 Error loading Copy of pckSplitSourceNQ.dtsx: Error loading value "<DTS:PrecedenceConstraint xmlns:DTS="www.microsoft.com/SqlServer/Dts"><DTS:Property DTS:Name="Value">0</DTS:Property><DTS:Property DTS:Name="EvalOp">2</DTS:Property><DTS:Property DTS:Name="LogicalAnd">-1</DTS:Property><DTS:Property DTS:Name="Expression"></" from node "DTS:PrecedenceConstraint". G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
Error 5 Error loading Copy of pckSplitSourceNQ.dtsx: Error loading value "<DTS:SelectedLogProvider xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:InstanceID="{AD446434-4355-42C7-AD07-3D64A37C1671}"/>" from node "DTS:SelectedLogProvider". G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
Error 6 Error loading Copy of pckSplitSourceNQ.dtsx: Error loading value "<DTS:LoggingOptions xmlns:DTS="www.microsoft.com/SqlServer/Dts"><DTS:Property DTS:Name="LoggingMode">0</DTS:Property><DTS:Property DTS:Name="FilterKind">0</DTS:Property><DTS:Property DTS:Name="EventFilter" DTS:DataType="8">2,10,OnProgress,23,ScriptComponen" from node "DTS:LoggingOptions". G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
Error 7 Error loading Copy of pckSplitSourceNQ.dtsx: Error loading a task. The contact information for the task is "Performs high-performance data extraction, transformation and loading;Microsoft Corporation; Microsoft SQL Server v9; (C) 2004 Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1". This happens when loading a task fails. G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
Error 8 Error loading 'Copy of pckSplitSourceNQ.dtsx' : The package failed to load due to error 0xC0010014 "One or more error occurred. There should be more specific errors preceding this one that explains the details of the errors. This message is used as a return value from functions that encounter errors.". This occurs when CPackage::LoadFromXML fails. . G:Visual Studio 2005 ProjectsSSISDataCleanseDataCleanseCopy of pckSplitSourceNQ.dtsx 1 1
There are special instructions for installing service packs on desktop edition installations -- command line options etc. How do you install hotfix roll-ups? Does build 2187 apply to desktop edition?
My question is how to get IDENTITY_INSERT Incriment Primary Key ID roll back when the application fails. Using TransactionScope with single connection in DataObject. I am trying to insert row in two dataTable using its own tableAdapter (two tableAdapter). I have Product table with ProductID primary key with incriment identity. and that ProductID is used to insert row in ProductHistory Table. Lets say Product table has the last ProductID=8 (8 rows) and the next ProductID will be 9. When I insert row in both table and if the second table insert fails both gets roll back (which is good). but when I insert again another time the Product ID=10 not 9. Is there any way to roll back the ProductID in Product table so when i insert next time it has incriment number instead of gap.
I have a script contains multiple statements to update multiple tables. How can I make sure that either all statements get executed successfully or no changes apply to the tables (in case one or more errors occur)? I've been searching on Internet and it seems like I need to use Rollback and begin transaction.
I am trying to implement a log shipping scenario in sql 2005 where the secondary server is in standby mode with the ability to roll change during failover.
With the help of BOL (ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/2d7cc40a-47e8-4419-9b2b-7c69f700e806.htm) I can implement my scenario in Recovery mode, but not in standby mode. I use the following sql to put my primary in standby
BACKUP LOG [database] TO DISK = @filename WITH STANDBY = 'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupROLLBACK_UNDO_database.BAK' GO
which works, but then my restore job fails on the last step. How can I put my primary db in standby mode in such a way that the log shipping restore will work?
Hi, I am a newbie in SSIS. I'd like to hear your recommendation to build the whole SSIS package as one transaction. In other words, how we can rollback all DML operations (insert/update/delete) that are applied in different parts of a package if for any reason the package failed to complete?. Something like rolling back a proc if the proc failed.