存储过程中用字段名作为参数应用在UPDATE里的问题
REATE PROCEDURE dbo.test
@vchfieldname varchar(255)
AS
update tb_tablename set @vchfieldname=@vchfieldname+1
GO
我用delphi调用这个存储过程代码如下:
ADOQuery1.SQL.Add('exec test fieldname1');
ADOQuery1.ExecSql;
或是
ADOQuery1.SQL.Add('exec test ''fieldname1''');
ADOQuery1.ExecSql;
均出现无法将其转换成int的错误。
那么我在UPDATE里面用这个参数应该怎么写呢?
问题点数:55、回复次数:4Top
1 楼Happiness(乐乐)回复于 2003-06-03 08:07:05 得分 15
CREATE PROCEDURE dbo.test
@vchfieldname varchar(255)
AS
declare @sql varchar(1000)
set @sql='update tb_tablename set '+@vchfieldname+'='+@vchfieldname+'+1'
exec(@sql)
go
Top
2 楼pengdali()回复于 2003-06-03 08:22:47 得分 20
REATE PROCEDURE dbo.test
@vchfieldname varchar(255)
AS
exec('update tb_tablename set '+@vchfieldname+'='+@vchfieldname+'+1')
GOTop
3 楼henry2003(阿波)回复于 2003-06-03 08:34:18 得分 10
CREATE PROCEDURE dbo.test
@vchfieldname varchar(255)
AS
declare @sql varchar(1000)
set @sql='update tb_tablename set '+@vchfieldname+'='+@vchfieldname+'+1'
exec(@sql)
go
真確﹗Top
4 楼triout(笨牛)回复于 2003-06-03 08:36:16 得分 10
呵呵,来晚了。
CREATE PROCEDURE dbo.test
@vchfieldname varchar(255)
AS
declare @sql varchar(1000)
set @sql='update tb_tablename set '+@vchfieldname+'='+@vchfieldname+'+1'
exec(@sql)
go
易读
CREATE PROCEDURE dbo.test
@vchfieldname varchar(255)
AS
exec('update tb_tablename set '+@vchfieldname+'='+@vchfieldname+'+1')
GO
短!Top




