主表中添加一条数据,子表中可能添加一条或N条数据,现在想用一个存储过程实现,请问如何做啊??
如:主表:
ID(主键,不自增),name    ,   no
1              aa,bb,cc,dd  11,22,33,44
2               aa          11子表:
IDD(自增) ID(主表的主键)  name,  no
1          1                aa    11
2          1                bb    22
3          1                cc    33
4          1                dd    44
5          2                aa    11数据库里的数据是像上面这样存在的,请问SQL怎么写,谢谢AS
 DECLARE @MaxID int
  BEGIN
   SET @MaxID=(SELECT ISNULL(MAX(ID),0)+1 FROM 主表)
   INSERT INTO 主表(ID,name,no) values(@MaxID,外面的参数,外面的参数)
   
下面的子表中的数据怎么添加呢??谢谢各位老大帮忙了,sql里怎么分隔字符串呢???

解决方案 »

  1.   

    用LEFT吧,在加一个FOR可以解决吧
      

  2.   

    你那个aa,bb,cc,dd  还要提取呢
    送给你一个函数吧
    create function f_split(@str varchar(8000),@StrSeprate varchar(10))
    returns @temp table(a varchar(100))
    as 
    begin
        declare @i int
        set @str=rtrim(ltrim(@SourceSql))
        set @i=charindex(@StrSeprate,@str)
        while @i>=1
        begin
            insert @temp values(left(@str,@i-1))
            set @str=substring(@str,@i+1,len(@str)-@i) --当然,这里您也可以改写为STUFF,可以自己试着改写一下
            set @i=charindex(@StrSeprate,@str)
        end
        if @SourceSql<>'\'
           insert @temp values(@str)
        return 
    end
    --用法:select * from dbo.f_split('A:B:C:D:E',':')
      

  3.   

    自己已经解决了,特别感谢nekiy(我只是个做美工的!)