Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Inserting Modifying

Author  Topic 

coagulance
Yak Posting Veteran

78 Posts

Posted - 2009-07-06 : 03:48:01
I need help on Creating a Procedure to
1) INSERT NEW Records in Order:
Parameters sent to stored procedure :
Order:AB001
Type:R65 Qty:6
Type:R55 Qty:3
Type:R34 Qty:2

Table to be populated:
ORDER Type ModelNumber
AB001 R65 QA001
AB001 R65 QA002
AB001 R65 QA003
AB001 R65 QA004
AB001 R65 QA005
AB001 R65 QA006
AB001 R55 QB001
AB001 R55 QB002
AB001 R55 QB003
AB001 R34 QC001
AB001 R34 QC002
AB001 R34 QC003

2) MODIFY EXISTING RECORDS
Parameters sent to stored procedure :
Order:AB001
Type:R65 Qty:5
Type:R55 Qty:4
Type:R34 Qty:1

Table to be populated:
ORDER Type ModelNumber
AB001 R65 QA001
AB001 R65 QA002
AB001 R65 QA003
AB001 R65 QA004
AB001 R65 QA005
AB001 R55 QB001
AB001 R55 QB002
AB001 R55 QB003
AB001 R55 QB004
AB001 R34 QC001

Tnanks and regards,

Naren

khtan
In (Som, Ni, Yak)

17689 Posts

Posted - 2009-07-06 : 04:23:20
quote:
2) MODIFY EXISTING RECORDS

By MODIFY, do you mean, insert where record not exists and delete any extra records ?


KH
[spoiler]Time is always against us[/spoiler]

Go to Top of Page

bklr
Master Smack Fu Yak Hacker

1693 Posts

Posted - 2009-07-06 : 05:01:48
is this u want

DECLARE @tab TABLE( orders VARCHAR(32),types VARCHAR(32),modelnumber VARCHAR(32))

CREATE PROC usp_SampleInsert
(
@order VARCHAR(32),@type VARCHAR(32),@modelnumber VARCHAR(32)
)
AS
SET NOCOUNT ON
BEGIN

INSERT INTO @tab
SELECT @order, @type, CASE WHEN @type ='R65' THEN 'QA' WHEN @type ='R55' THEN 'QB' ELSE 'QC' END
+RIGHT('00' + CAST(number AS VARCHAR(3)), 3)
FROM master..spt_Values m
WHERE TYPE ='p' and m.number>0 and number between 1 AND @modelnumber

END
SET NOCOUNT OFF


CREATE PROC usp_SampleUpdate
(
@order VARCHAR(32),@type VARCHAR(32),@modelnumber VARCHAR(32)
)
AS
SET NOCOUNT ON
BEGIN

DELETE FROM @TAB WHERE CAST(RIGHT(modelnumber,3) AS INT) > @modelnumber

END
SET NOCOUNT OFF
Go to Top of Page
   

- Advertisement -