CREATE PROCEDURE dtt_GetUserInfo @userid int,@index int as declare @tablename varchar(100),@i varchar(300) select @tablename ='userinfo'+CASE(index as varchar(1)) declare @usermoney int select @i='select '+@usermoney+'=usermoney from '+@tablename+' where userid='+@userid execute(@i) go
CREATE PROCEDURE dtt_GetUserInfo @userid int,@index int as declare tablename varchar(100) select tablename ='userinfo'+CASE(index as varchar) declare @usermoney int declare @sql varchar(1000) set @sql = 'select '+@usermoney+ ' = usermoney from '+@tablename+' where userid = '+cast(@userid as varchar) exec(@sql)go
以上都不行,主要要提取 @usermoney 值,还有没有高手啊
--类似这样用 declare @sql nvarchar(200) declare @cnt int set @sql=N'select @cnt=count(*) from WQ_STINFO_B ' exec sp_executesql @sql,N'@cnt int output',@cnt output
/* create table userinfo2( userid int , usermoney int)insert into userinfo2 values(1,233)dtt_GetUserInfo 1,2*/ create procedure dtt_GetUserInfo @userid int,@index int as begin declare @tablename varchar(100) select @tablename ='userinfo'+cast(@index as varchar)
declare @sql varchar(1000) set @sql = 'declare @usermoney int select @usermoney=usermoney from '+@tablename+' where userid = '+cast(@userid as varchar)+' select @usermoney' exec(@sql) end
exec('select * from '+@表名+')
as
declare @tablename varchar(100),@i varchar(300)
select @tablename ='userinfo'+CASE(index as varchar(1))
declare @usermoney int
select @i='select '+@usermoney+'=usermoney from '+@tablename+' where userid='+@userid
execute(@i)
go
as
declare tablename varchar(100)
select tablename ='userinfo'+CASE(index as varchar)
declare @usermoney int
declare @sql varchar(1000)
set @sql = 'select '+@usermoney+ ' = usermoney from '+@tablename+' where userid = '+cast(@userid as varchar)
exec(@sql)go
declare @sql nvarchar(200)
declare @cnt int
set @sql=N'select @cnt=count(*) from WQ_STINFO_B '
exec sp_executesql @sql,N'@cnt int output',@cnt output
create table userinfo2(
userid int ,
usermoney int)insert into userinfo2
values(1,233)dtt_GetUserInfo 1,2*/
create procedure dtt_GetUserInfo @userid int,@index int
as
begin
declare @tablename varchar(100)
select @tablename ='userinfo'+cast(@index as varchar)
declare @sql varchar(1000)
set @sql = 'declare @usermoney int select @usermoney=usermoney
from '+@tablename+' where userid = '+cast(@userid as varchar)+' select @usermoney'
exec(@sql)
end