在创建sql server2000的存储过程中,带参的输入参数值可否可以传入表名或是列名?
s 偶想创建一个带输入参数的存储过程,参数的传入值是一个表名或是一个字段名称
,就像如下这样,
代码:
create procedure pro_book
@tab_name varchar(10), --表名
@col_name varchar(10) --列名
as
declare @t varchar(10)
declare @c varchar(10)
set @t = @tab_name
set @n = @col_name
--更新某一个表的某一字段,使其自增1运算,设计表的数据类型均为int型
update @t set @t = @t + 1
go
bug:
服务器: 消息 137,级别 15,状态 1,过程 pro_udVote,行 10
必须声明变量 '@n '。
服务器: 消息 137,级别 15,状态 1,过程 pro_udVote,行 10
必须声明变量 '@n '。
这样是否可行,如果可以该如何创建?小弟在这谢了~_~!
------解决方案--------------------declare @sql varchar(1000)
set @sql = 'update ' + @tab_name + ' set ' + @col_name + ' = ' + @col_name + ' + 1 '
exec @sql
------解决方案--------------------declare @sqltext varchar(512)
select @sqltext = "update "+@t+ " set "+@n+ " = "+@n+ " + 1 "
exec(@sqltext)
if @@error <> 0
begin
goto err
end