Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
Log in  ::  Register  ::  Not logged in
Home       Members    Calendar    Who's On

Add to briefcase

SQL Server Service Broker Updating Stored procedure Expand / Collapse
Posted Wednesday, May 28, 2014 1:43 PM


Group: General Forum Members
Last Login: Wednesday, May 28, 2014 1:41 PM
Points: 16, Visits: 5
how can you update the service broker stored procedure. when i update the stored procedure the changes dont come into affect. i have tried to alter the queue, waited for all jobs to finish, but some how still the old stored procedure is running. is there any way i can force changes to the stored procedure.

i have tried sql profiler tracing but that didnt show any changes.

ALTER PROCEDURE [dbo].[ServiceBroker_AtTarget_FromSLICJobEstimateDetailsNewLineAddedBySupplier]
@XML XML(SLICMessageSchema)
-- extract data :
@LogNo INT,
@QuoteReference INT,
@JobEstimatesDetailID INT,
@UserName NVARCHAR(50),
@Description NVARCHAR(MAX),
@UnitValue DECIMAL(18,2),
@Quantity DECIMAL(18,2),
@LineTotal DECIMAL(18,2),
@QuoteTotal DECIMAL(18,2),
@tsCreated DATETIME

SELECT @QuoteReference = @XML.value('data(//FromSLIC/FromSLICJobEstimateDetailsNewLineAddedBySupplier/@QuoteReference)[1]', 'int'),
@JobEstimatesDetailID = @XML.value('data(//FromSLIC/FromSLICJobEstimateDetailsNewLineAddedBySupplier/@JobEstimatesDetailID)[1]', 'int'),
@UserName = @XML.value('data(//FromSLIC/FromSLICJobEstimateDetailsNewLineAddedBySupplier/@UserName)[1]', 'nvarchar(50)'),
@Description = @XML.value('data(//FromSLIC/FromSLICJobEstimateDetailsNewLineAddedBySupplier/@Description)[1]', 'nvarchar(max)'),
@UnitValue = @XML.value('data(//FromSLIC/FromSLICJobEstimateDetailsNewLineAddedBySupplier/@UnitValue)[1]', 'decimal(18,2)'),
@Quantity = @XML.value('data(//FromSLIC/FromSLICJobEstimateDetailsNewLineAddedBySupplier/@Quantity)[1]', 'decimal(18,2)'),
@tsCreated = @XML.value('data(//FromSLIC/FromSLICJobEstimateDetailsNewLineAddedBySupplier/@tsCreated)[1]', 'datetime')

SET @LogNo = (SELECT mlq.logno FROM fsgmgtservices.dbo.maintlogquotes mlq WHERE mlq.quoteno = @QuoteReference)

INSERT INTO fsgcentraldata.dbo.[tblSLICGeneratedEvents]
(EventNameID, tsCreated, CreatedBy, IsAcknowledged, JobNumber, ContractorID)
SELECT 9, @tsCreated, @UserName, 0, @LogNo, je.contractorid
FROM [slic3.0].dbo.JobEstimates je WHERE je.legacyreference = CAST(@quotereference AS varchar(50))

SET @LineTotal = (@UnitValue * @Quantity) // IF I CHANGE IT TO ((@UnitValue * 2)) FOR EXMPL

INSERT INTO fsgmgtservices.dbo.maintlogquotedetails
(quoteno, details, quantity, rate, amount, [date], slicreference)
SELECT @QuoteReference, @description, @quantity, @UnitValue, @LineTotal, @tscreated, @JobEstimatesDetailID

SET @QuoteTotal = (SELECT SUM(mlqd.amount) FROM fsgmgtservices.dbo.maintlogquotedetails mlqd
WHERE mlqd.quoteno = @QuoteReference)

UPDATE fsgmgtservices.dbo.maintlogquotes SET amount = @QuoteTotal WHERE quoteno = @QuoteReference

INSERT INTO [fsgmgtservices].[dbo].maintlognotes
(logno, [date], [user], [note], transferredfromslic)
SELECT @LogNo, @tsCreated, @UserName, 'Quote ' + CAST(@QuoteReference AS varchar(20)) + ', new lines added by supplier in SLIC By ' + @UserName , 0

Post #1575340
Posted Thursday, June 19, 2014 8:36 AM


Group: General Forum Members
Last Login: Friday, July 25, 2014 3:31 AM
Points: 194, Visits: 717
hi there,

I think you are talking about the activation procedure for the queue.
This is a procedure like any other store procedured. Just alter it as usual.

Get sure that your procedure is actual bound to the queue. Maybe you are changing another procedure but not the current activation procedure.
Use the ALTER QUEUE command to bind your procedure to the queue or check the table sys.service_queues, there you can find the current activation procedure.
Post #1583862
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse