Monday, February 2, 2015

Create Cursor and execute update query with local variable


GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- exec GenQuery tablename


CREATE PROCEDURE [dbo].[GenQuery]  

  @tablename sysname
as


Declare @Value1 NVarchar(8)
Declare @Value2 NVarchar(8)
Declare @Value3 Nchar(8)
Declare @tablequery NVarchar(100)

BEGIN

--- Start Cursor  -----
DECLARE CURt CURSOR FOR

Select Value1,Value2,Value3 From tablename

OPEN CURt
FETCH NEXT FROM CURt INTO @Value1,@Value2,@Value3
WHILE @@FETCH_STATUS = 0
BEGIN
Set @tablequery = N'update ' + @tablename + ' Set Value1= ' + @Value1 +',Value2= ' + @Value2 + ' where Value3= ' + @Value3 + ' '
execute sp_executesql @tablequery
FETCH NEXT FROM CURt INTO@Value1,@Value2,@Value3
END
CLOSE CURt
DEALLOCATE CURt
--- End Cursor  -----
END