Hi All,
I have create following table and inserted few records
Code Snippet
USE
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tbl_position](
[part] [nchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[price] [money] NOT NULL,
[opt] [bit] NOT NULL
) ON [PRIMARY]
I am executing following procedure to update the table.
Code Snippet
USE
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[PROC1] ( @.part varchar(20), @.PRICE MONEY, @.OPT BIT )
AS
BEGIN
declare @.sSQL as nvarchar(max);
SET @.sSQL = 'update tbl_position set opt=@.OPT,price=@.PRICE WHERE part = '+ @.part;
exec sp_executesql @.sSQL
END
ex:
Code Snippet
exec PROC1 1,2.50,0but I am getting following error
Code Snippet
Msg 137, Level 15, State 2, Line 1
Must declare the scalar variable "@.OPT".
I am struck up with this query .
Please Help me regarding this issue.
Regards
Gomaz
Code Snippet
CREATE PROCEDURE [dbo].[PROC1] ( @.part varchar(20), @.PRICE MONEY, @.OPT BIT )
AS
BEGIN
declare @.sSQL as nvarchar(max);
SET @.sSQL = 'update tbl_position set opt=' +cast(@.OPT as char(1) )+',price='+@.PRICE+' WHERE part = '+ @.part;
exec sp_executesql @.sSQL
END
sp_executesql execute query in different bacth. As you couldn't use opt=@.OPT
No comments:
Post a Comment