难题:sql server 存储过程中的参数怎么用啊?(10分)

  • 主题发起人 主题发起人 seeok
  • 开始时间 开始时间
S

seeok

Unregistered / Unconfirmed
GUEST, unregistred user!
create procedure getid
@tablename varchar(50), --表名
@fieldname varchar(50) --段名
as
declare @temp varchar(50)
select @fieldname from @tablename
这个select语句有错,说@tablename没有定义过,
我改为@temp='select @fieldname from'+ @tablename exec(@temp)
这样是能通过,但在执行这个存储过程的时候说@fieldname没有定义过.
请各位高手帮帮忙?
 
@temp='select @fieldname from'+ @tablename
改为:
@temp='select '+@fieldname+' from'+ @tablename
就可以了。
至于:select @fieldname from @tablename
SQL 会语法检查的。它在数据库里找不到名为'@tablename'这个表。
 
.......
as
declare @temp varchar(50)
select @temp='select '+@fieldname+' from'+ @tablename
exec(@temp)

动态SQL语句必须掉用exec
 
同意楼上的意见
 
接受答案了.
 
后退
顶部