create proc sel @a varchar(10),@tab varchar(10)
as
exec('select * from '+@tab+' where name='''+@a+'''')
go
exec sel 'aa','bb'
as
exec('select * from '+@tab+' where name='''+@a+'''')
go
exec sel 'aa','bb'
调试欢乐多
drop table tblA
go
create table tblA
(
ID int,
name varchar(10)
)
go
insert into tblA values(1, 'Michel')
insert into tblA values(2, 'Leo')
insert into tblA values(3, 'Helo')if exists(select name from sysobjects where name='sel' and xtype='FN')
drop function sel
goif exists(select name from sysobjects where name='sel' and xtype='FN')
drop function sel
gocreate function sel( @n varchar(10),@tab varchar(10))
returns varchar(80)
as
begin
declare @sql Nvarchar(80)
--declare @c int
set @sql = 'select @c=ID from '+ @tab +' where name='''+ @n +''''
--exec sp_executesql @sql, N'@c int output', @c output
return @sql
end
go
select dbo.sel('Leo','tblA')
select @c=ID from tblA where name='Leo'并没有得到
2,Leo
这个结果
return table
as
return (select * from xx where name=@a and uu=@tab)
goselect * from sel('s','b')