Answer Posted / manoj kaushik
/* Same as previous example, this time using a
** cursor. Each update commits as it is made.
*/
create procedure increase_price_cursor
as
declare @price money
/* declare a cursor for the select from titles */
declare curs cursor for
select price
from titles
for update of price
/* open the cursor */
open curs
/* fetch the first row */
fetch curs into @price
/* now loop, processing all the rows
** @@sqlstatus = 0 means successful fetch
** @@sqlstatus = 1 means error on previous fetch
** @@sqlstatus = 2 means end of result set reached
*/
while (@@sqlstatus != 2)
begin
/* check for errors */
if (@@sqlstatus = 1)
begin
print "Error in increase_price"
return
end
/* next adjust the price according to the
** criteria
*/
if @price > $60
select @price = @price * 1.05
else
if @price > $30 and @price <= $60
select @price = @price * 1.10
else
if @price <= $30
select @price = @price * 1.20
/* now, update the row */
update titles
set price = @price
where current of curs
/* fetch the next row */
fetch curs into @price
end
/* close the cursor and return */
close curs
return
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
What is union and union all keyword in sql and what are their differences?
What is an escape character in sql?
Can we join same table in sql?
What is rank dense_rank and partition in sql?
Explian rowid, rownum?
What is the non-clustered index in sql?
When can we use the where clause and the having clause?
What are the different ways to optimize a sql query?
Explain the savepoint statement.
What is the trigger in sql?
What is a left inner join?
how many sql dml commands are supported by 'mysql'? : Sql dba
Which command is used to delete a trigger?
What is break?
What is difference between group by and partition by?