|
database
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Stored Procedure to Delete RowsHi there,
I have made this statement that will select credit card details from one table if the order status is shipped in another table. SELECT dbo.tblOrderDetails.orderStatus, dbo.tblCreditCardDetailsTest.orderNumer, dbo.tblOrderDetails.cName, dbo.tblCreditCardDetailsTest.creditCardNumber FROM dbo.tblCreditCardDetailsTest INNER JOIN dbo.tblOrderDetails ON dbo.tblCreditCardDetailsTest.orderNumer = dbo.tblOrderDetails.orderNumber WHERE (dbo.tblOrderDetails.orderStatus = N'SHIPPED') I now want to make this into a delete statement, but I dont know how. Can anyone help? Cheers, Steve BEGIN TRAN
DELETE tblCreditCardDetailsTest where orderNumer IN ( SELECT dbo.tblCreditCardDetailsTest.orderNumer FROM dbo.tblCreditCardDetailsTest INNER JOIN dbo.tblOrderDetails ON dbo.tblCreditCardDetailsTest.orderNumer = dbo.tblOrderDetails.orderNumber WHERE (dbo.tblOrderDetails.orderStatus = N'SHIPPED')) only COMMIT TRAN if the rows affected is what you expected.. -- Show quoteHTH. Ryan "Dooza" <steve@dont.spam.me.dooza.tv> wrote in message news:eA2zQYbHGHA.2696@TK2MSFTNGP14.phx.gbl... > Hi there, > I have made this statement that will select credit card details from one > table if the order status is shipped in another table. > > SELECT dbo.tblOrderDetails.orderStatus, > dbo.tblCreditCardDetailsTest.orderNumer, dbo.tblOrderDetails.cName, > dbo.tblCreditCardDetailsTest.creditCardNumber > FROM dbo.tblCreditCardDetailsTest INNER JOIN > dbo.tblOrderDetails ON > dbo.tblCreditCardDetailsTest.orderNumer = dbo.tblOrderDetails.orderNumber > WHERE (dbo.tblOrderDetails.orderStatus = N'SHIPPED') > > I now want to make this into a delete statement, but I dont know how. Can > anyone help? > > Cheers, > > Steve Ryan wrote:
> BEGIN TRAN Hi Ryan,> > DELETE tblCreditCardDetailsTest where orderNumer IN > > ( SELECT dbo.tblCreditCardDetailsTest.orderNumer FROM > dbo.tblCreditCardDetailsTest INNER JOIN > dbo.tblOrderDetails ON > dbo.tblCreditCardDetailsTest.orderNumer = dbo.tblOrderDetails.orderNumber > WHERE (dbo.tblOrderDetails.orderStatus = N'SHIPPED')) > > > only COMMIT TRAN if the rows affected is what you expected.. > That was perfect! Thank you very much indeed. I will remember this technique, as I am sure it will be usefull for other things. Steve No problem, if i'm honest this isn't a very effecient way of going about it.
The EXISTS condition would achevie the same with less overhead. If you wish to familiarise yourself have a look at this :- http://www.techonthenet.com/sql/exists.php -- Show quoteHTH. Ryan "Dooza" <steve@dont.spam.me.dooza.tv> wrote in message news:u5Nx97bHGHA.2704@TK2MSFTNGP15.phx.gbl... > Ryan wrote: >> BEGIN TRAN >> >> DELETE tblCreditCardDetailsTest where orderNumer IN >> >> ( SELECT dbo.tblCreditCardDetailsTest.orderNumer FROM >> dbo.tblCreditCardDetailsTest INNER JOIN >> dbo.tblOrderDetails ON >> dbo.tblCreditCardDetailsTest.orderNumer = >> dbo.tblOrderDetails.orderNumber >> WHERE (dbo.tblOrderDetails.orderStatus = N'SHIPPED')) >> >> >> only COMMIT TRAN if the rows affected is what you expected.. >> > > Hi Ryan, > That was perfect! Thank you very much indeed. I will remember this > technique, as I am sure it will be usefull for other things. > > Steve |
|||||||||||||||||||||||