34,590
社区成员
发帖
与我相关
我的任务
分享
CREATE FUNCTION dbo.函数名 (@id int)
RETURNS varchar(20)
AS
BEGIN
declare @myReturn varchar(20)
set @myReturn =(select 字段名 from 表名 where 字段id = @id )
return @myReturn
END
create proc aproc
@tbName varchar(20),@field1 varchar(50),@field2 varchar(50),@id varchar(11)
as
BEGIN
declare @myReturn varchar(1000)
set @myReturn = 'select '+@field1 +' from '+ @tbName +' where ' +@field2 +'='+@id
exec (@myReturn )
END
执行存储过程
exec aproc 'a','id,part,qty','id',1
declare @s varchar(1000)
select @s= dbo.[Fn_General]('a','id,part,qty','id','1')
exec(@s)
alter FUNCTION [dbo].[Fn_General] (@tbName varchar(20),@field1 varchar(50),@field2 varchar(50),@id varchar(11))
RETURNS varchar(1000)
AS
BEGIN
declare @myReturn varchar(1000)
set @myReturn = 'select '+@field1 +' from '+ @tbName +' where ' +@field2 +'='+@id
exec @myReturn
return @myReturn
END
go
select NewField=(select top 1 field1 from tbName where field2=id),字段....form A
union all
select NewField=(select top 1 field1 from tbName where field2=id),字段....form B
union all
...............
declare @tbName varchar(20),@field1 varchar(50),@field2 varchar(50),@id int,@myReturn varchar(50)
set @tbName='build_type_name'
set @field1='build_type'
set @field2='build_type_id'
set @id= 1
set @myReturn='select '+@field1 +' from '+ @tbName +' where ' +@field2 +' = '+@id
print @myReturn
create FUNCTION [dbo].[Fn_General] (@tbName varchar(20),@field1 varchar(50),@field2 varchar(50),@id int)
RETURNS varchar(100)
AS
BEGIN
declare @myReturn varchar(100)
set @myReturn = 'select '+@field1 +' from '+ @tbName +' where ' +@field2 +'='+@id
return @myReturn
END
go
declare @tbname varchar(40),@fields varchar(1000),@id varchar(20),@result varchar(2000)
set @fields='fielda,fieldb'
set @tbname = 'tb'
set @id = 'abc'
set @result = 'select '+@fields +' from '+ @tbname +' where id='+@id
print @result