<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server, SQL Server Express, and SqlDataSource Control</title><link>http://forums.asp.net/54.aspx</link><description>All about SQL Server, SQL Server Express, MSDE, and the SqlDataSource control.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: transaction in sp or front end</title><link>http://forums.asp.net/thread/3274855.aspx</link><pubDate>Sat, 04 Jul 2009 17:37:57 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3274855</guid><dc:creator>TATWORTH</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3274855.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=3274855</wfw:commentRss><description>&lt;p&gt;&amp;gt;should I use transcation in db or front end. should i return some value based upon success or failure&lt;/p&gt;&lt;p&gt;Wherever possible the transaction should be in the database. With SQL 2008 the classical exception of the order header and variable number of detail lines no longer applies as a stored procedure can be passed an array.&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: transaction in sp or front end</title><link>http://forums.asp.net/thread/3274112.aspx</link><pubDate>Sat, 04 Jul 2009 00:24:19 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3274112</guid><dc:creator>RickNZ</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3274112.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=3274112</wfw:commentRss><description>&lt;p&gt;I prefer a slightly different pattern than Naom&amp;#39;s (although it will also work fine).&amp;nbsp; The raiserror code should be moved to its own SP.&amp;nbsp; The key difference is the use of xact_abort and xact_state():&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;pre name="code" class="sql"&gt;CREATE procedure [dbo].[YourProc]
as
begin
	set nocount on
	set xact_abort off
	begin try
		begin transaction
                   -- your code here
		commit transaction
	end try
	begin catch
		if xact_state() &amp;lt;&amp;gt; 0
		begin
			-- uncommittable transaction
			rollback transaction
		end
	        declare @ErrorMessage nvarchar(4000)
	        declare @ErrorSeverity int
	        declare @ErrorState int
	        set @ErrorMessage =
                    convert(varchar(10), error_number()) + &amp;#39;:&amp;#39; + error_message()
	        set @ErrorSeverity = error_severity()
	        set @ErrorState = error_state()
	        if @ErrorState = 0
		set @ErrorState = 1
	        raiserror (@ErrorMessage, @ErrorSeverity, @ErrorState)
	end catch
end&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: transaction in sp or front end</title><link>http://forums.asp.net/thread/3273770.aspx</link><pubDate>Fri, 03 Jul 2009 15:36:19 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3273770</guid><dc:creator>Naom</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3273770.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=3273770</wfw:commentRss><description>&lt;p&gt;I would use the transaction right in this SP using BEGIN TRANSACTION / COMMIT TRANSACTION commands.&lt;/p&gt;&lt;p&gt;I used this approach myself. Here is a sample &lt;a href="http://forums.asp.net/p/1373630/2880551.aspx#2880551" target="_blank"&gt;http://forums.asp.net/p/1373630/2880551.aspx#2880551&lt;/a&gt;&lt;/p&gt;</description></item><item><title>transaction in sp or front end</title><link>http://forums.asp.net/thread/3273032.aspx</link><pubDate>Fri, 03 Jul 2009 08:18:09 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3273032</guid><dc:creator>sparrow37</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3273032.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=54&amp;PostID=3273032</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt;&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;Hi all,&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;I want to use transaction in following sp so that all steps happen or nothing happen.&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;create order&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;create order detail&amp;nbsp;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;delete items from shopping cart after adding item in order and order detail&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;How to use transaction. any better solution&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;ALTER PROCEDURE [dbo].[CreateCustomerOrder]&amp;nbsp;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;(&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@CustomerName VARCHAR(101),&amp;nbsp;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@ShippingRegion int,&lt;span style="white-space:pre;"&gt;			&lt;/span&gt;-- 1 domestice 2 international&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@ShipmentType int,&lt;span style="white-space:pre;"&gt;				&lt;/span&gt;-- 2 2day /3 ground /1 nextday&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@PaymentType int,&lt;span style="white-space:pre;"&gt;				&lt;/span&gt;-- 1 paypal , 2 CC&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@CustomerEmail VARCHAR(100),&amp;nbsp;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@CustomerID int,&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@OrderStatus int,&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@TransID VARCHAR(50),&lt;span style="white-space:pre;"&gt;				&lt;/span&gt;-- 0 cancel / 1 complete / 2 pending / 3 verified&amp;nbsp;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@ShippingCost float,&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@Discount float,&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@Tax &amp;nbsp; float, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -- not needed here&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@isWholesaler bit,&lt;span style="white-space:pre;"&gt;				&lt;/span&gt;/* it can be checked using select iswholesaler from users where userid = custid*/&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@CCNumber varchar(1000),&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;@CreatedBy varchar(50)&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;)&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;AS&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;/* Insert a new record INTo Orders */&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;DECLARE @OrderID INT&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;INSERT INTO ORDERS(CustomerName,ShippingRegion,ShipmentType,PaymentType,CustomerEmail,CustomerID,OrderStatus,TranscID,ShippingCost,Discount,Tax,CCNumber,IsActive,CreatedBy,CreatedOn)&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VALUES(@CustomerName,@ShippingRegion,@ShipmentType,@PaymentType,@CustomerEmail,@CustomerID,@OrderStatus,@TransID,@ShippingCost,@Discount,@Tax,@CCNumber,1,@CreatedBy,getdate())&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;/* Save the new Order ID */&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;SET @OrderID = scope_IDENTITY()&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;/* Add the order details to OrderDetail */&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;INSERT INTO OrderDetails (OrderID, ProductID, ProductName, Quantity, UnitCost)&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT @OrderID, p.ProductID, p.ProductName, s.Quantity,&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;case when @isWholesaler = 1 then UnitPrice_WholeSale&amp;nbsp;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; when onsale= 0 &amp;nbsp;then p.UnitPrice_retail&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; when onsale = 1 then &amp;nbsp;p.SalePrice end unitprice&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;FROM Products p JOIN ShoppingCart s&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;ON p.ProductID = s.ProductID&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;WHERE s.CreatedBy = @CustomerID&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;/* Clear the shopping cart */&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;DELETE FROM ShoppingCart&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;WHERE CreatedBy = @CustomerID&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;/* Return the Order ID */&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;SELECT @OrderID&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;Regards,&lt;/div&gt;
&lt;div style="position:absolute;left:-10000px;top:0px;width:1px;height:1px;overflow-x:hidden;overflow-y:hidden;" id="_mcePaste"&gt;Asif Hameed&lt;/div&gt;&lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I want to use transaction in following sp so that all steps happen or nothing happen.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;create order&lt;/p&gt;&lt;p&gt;create order detail&amp;nbsp;&lt;/p&gt;&lt;p&gt;delete items from shopping cart after adding item in order and order detail&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;How to use transaction. any better solution&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ALTER PROCEDURE [dbo].[CreateCustomerOrder]&amp;nbsp;&lt;/p&gt;&lt;p&gt;(&lt;/p&gt;&lt;p&gt;@CustomerName VARCHAR(101),&amp;nbsp;&lt;/p&gt;&lt;p&gt;@ShippingRegion int,&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;			&lt;/span&gt;-- 1 domestice 2 international&lt;/p&gt;&lt;p&gt;@ShipmentType int,&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;-- 2 2day /3 ground /1 nextday&lt;/p&gt;&lt;p&gt;@PaymentType int,&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;-- 1 paypal , 2 CC&lt;/p&gt;&lt;p&gt;@CustomerEmail VARCHAR(100),&amp;nbsp;&lt;/p&gt;&lt;p&gt;@CustomerID int,&lt;/p&gt;&lt;p&gt;@OrderStatus int,&lt;/p&gt;&lt;p&gt;@TransID VARCHAR(50),&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;-- 0 cancel / 1 complete / 2 pending / 3 verified&amp;nbsp;&lt;/p&gt;&lt;p&gt;@ShippingCost float,&lt;/p&gt;&lt;p&gt;@Discount float,&lt;/p&gt;&lt;p&gt;@Tax &amp;nbsp; float, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -- not needed here&lt;/p&gt;&lt;p&gt;@isWholesaler bit,&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;/* it can be checked using select iswholesaler from users where userid = custid*/&lt;/p&gt;&lt;p&gt;@CCNumber varchar(1000),&lt;/p&gt;&lt;p&gt;@CreatedBy varchar(50)&lt;/p&gt;&lt;p&gt;)&lt;/p&gt;&lt;p&gt;AS&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/* Insert a new record INTo Orders */&lt;/p&gt;&lt;p&gt;DECLARE @OrderID INT&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;INSERT INTO ORDERS(CustomerName,ShippingRegion,ShipmentType,PaymentType,CustomerEmail,CustomerID,OrderStatus,TranscID,ShippingCost,Discount,Tax,CCNumber,IsActive,CreatedBy,CreatedOn)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VALUES(@CustomerName,@ShippingRegion,@ShipmentType,@PaymentType,@CustomerEmail,@CustomerID,@OrderStatus,@TransID,@ShippingCost,@Discount,@Tax,@CCNumber,1,@CreatedBy,getdate())&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/* Save the new Order ID */&lt;/p&gt;&lt;p&gt;SET @OrderID = scope_IDENTITY()&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/* Add the order details to OrderDetail */&lt;/p&gt;&lt;p&gt;INSERT INTO OrderDetails (OrderID, ProductID, ProductName, Quantity, UnitCost)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT @OrderID, p.ProductID, p.ProductName, s.Quantity,&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;case when @isWholesaler = 1 then UnitPrice_WholeSale&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; when onsale= 0 &amp;nbsp;then p.UnitPrice_retail&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; when onsale = 1 then &amp;nbsp;p.SalePrice end unitprice&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;FROM Products p JOIN ShoppingCart s&lt;/p&gt;&lt;p&gt;ON p.ProductID = s.ProductID&lt;/p&gt;&lt;p&gt;WHERE s.CreatedBy = @CustomerID&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/* Clear the shopping cart */&lt;/p&gt;&lt;p&gt;DELETE FROM ShoppingCart&lt;/p&gt;&lt;p&gt;WHERE CreatedBy = @CustomerID&lt;/p&gt;&lt;p&gt;/* Return the Order ID */&lt;/p&gt;&lt;p&gt;SELECT @OrderID&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;should i use transcation in db or front end. should i return some value based upon success or failure&lt;/p&gt;&lt;p&gt;Regards,&lt;/p&gt;&lt;p&gt;Asif Hameed&lt;/p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description></item></channel></rss>