方案一:
Create FUNCTION [dbo].Get_Contract_StyleNo(@AutoInc bigint)
RETURNS VARCHAR(Max)
AS
BEGIN
DECLARE @Content NVARCHAR(MAX)
SET @Content = ”
SELECT @Content = case when @Content=” then ” else @Content + ‘,’ end + GoodsNo
FROM (select distinct GoodsNo from EXP_Contract_Clothing_Goods where MainID=@AutoInc) m
RETURN @Content
END
GO
构造标量函数
使用xml
构造通用存储过程
方案三:
——默认条件,MainID=AutoInc
alter procedure [dbo].[SP_SumStr]
(
@MTable Varchar(100)–主表
,@ZTable Varchar(100)–子表
,@MColumn Varchar(100)–主表更新字段
,@ZColumn Varchar(100)–子表拼接字段
,@ConditionSql Varchar(500)–传入的条件语句
)
as
set nocount on
begin
declare @strSql varchar(3000)
select top 1 AutoInc as MainID, Convert(nvarchar(500),CnName) as GoodsNo
into #result
from SYS_Staff where 1<0
set @strSql = ‘insert into #result select distinct MainID,’+ @ZColumn +’ from ‘+@ZTable+’ ‘ + @ConditionSql
exec(@strSql)
DECLARE @Content NVARCHAR(MAX)
SET @Content = ”
SELECT @Content = case when @Content=” then ” else @Content + ‘,’ end + GoodsNo FROM #result
set @strSql = ‘Update a set a.’+@MColumn+’=’+@Content+’ from ‘+ @MTable +’ a left join ‘+@ZTable+’ b on a.AutoInc=b.MainID ‘ + @ConditionSql
exec(@strSql)
—-SELECT @Content
end
set nocount off
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。