主表中添加一条数据,子表中可能添加一条或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里怎么分隔字符串呢???
如:主表:
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里怎么分隔字符串呢???
送给你一个函数吧
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',':')