Tuesday, March 20, 2012
Problem wit sp_execute SQL
Declare @.SQLState NVARCHAR(500)
Declare Code Cursor
for
select SQLState from updates
open Code
FETCH NEXT FROM Code
into @.SQLState
While @.@.fetch_Status = 0
Begin
Exec sp_executesql @.SQLState
FETCH NEXT FROM Code
END
CLOSE Code
DEALLOCATE Code
IT appears to run succesfully, but the updates never happen - I get the following results for each update line:
UPDATE REEmployeeEvent SET UpdatedByEmployeeID= '00013' Where UpdatedByEmployeeID='00279'
(1 row(s) affected)
(0 row(s) affected)
Any ideas what I am doing wrong?
BTW - If I run the statements manually, they do work.
Thanks for any help!is there any particular reason why you want to use such a non-standard method to execute a script?
Why not execute dump them to a file, and execute the file as a single batch? At least that way you could visually inspect the scripts for correctness.
What you are trying to do here seems risky at best.
problem while using sp_ExecuteSql
Hi all
I have a stored procedure as I placed below
create procedure ps_Select_Student
@.RollNo nvarchar(50),
@.Class int
AS
Begin
declare @.MainQuery nvarchar(4000)
set @.MainQuery = 'select StudentName where RollNo=@.RollNo and Class=@.Class'
exec sp_ExecuteSql @.MainQuery
End
Go
While executing this procedure in Query Analyser i am agetting an error that
must declare @.RollNo
What is the problem. Please help me out.
You have to declare those variables on param declaration parameter of sp_executesql
Code Snippet
create procedure ps_Select_Student
@.RollNo nvarchar(50),
@.Class int
AS
Begin
Declare @.MainQuery nvarchar(4000)
Declare @.ParamDecl nvarchar(4000)
set @.MainQuery = N'select StudentName where RollNo=@.RollNo and Class=@.Class'
set @.ParamDecl = N'@.RollNo nvarchar(50),@.Class int'
Exec sp_ExecuteSql @.MainQuery , @.ParamDecl, @.RollNo, @.Class
End
Go