Asp.net表格
SELECT * FROM (SELECT P1.* FROM
(SELECT
a_profile_id AS profile_id,
a_profile_match_available_on as profile_match_available_on
FROM profile_match
UNION SELECT
b_profile_id AS profile_id,
b_profile_match_available_on as profile_match_available_on
FROM profile_match) AS P1
) AS P2
GROUP BY P2.profile_id
HAVING profile_match_available_on > MIN(profile_match_available_on);
对于上面的表格,我创建了以下表格结构
Student Name
Student Address
English (marks)
Maths (marks)
Science (marks)
我想创建一个存储过程,将一次插入Create Table Student
(
sId int primary key identity(100,1),
sName varchar(50),
sAddress varchar(100)
)
Create Table Subjects
(
subId int primary key,
subName varchar(100)
)
Create Table Marks
(
mid int primary key identity(1,1),
sId int foreign key references Student(sId) ,
subId int foreign key references Subjects(subId),
MarkPercent int
)
Create Procedure uspAddStudentDetails
(
@sName varchar(50),
@sAddress varchar(100),
@English int,
@Maths int,
@Science int
)
AS
Begin
Insert into Students (sName, sAddress) values (@sName, @sAddress)
End
表,然后将多个详细信息插入Student
表中,如下所述。我在上面的SP中尝试了一些程度。
Marks
答案 0 :(得分:2)
我认为以下程序符合您的要求:
首先插入此值
insert into subjects values(1000,'English')
insert into subjects values(2000,'Maths')
insert into subjects values(3000,'Science')
使用此程序:
Create Procedure uspAddStudentDetails
(
@sName varchar(50),
@sAddress varchar(100),
@English int,
@Maths int,
@Science int
)
AS
Begin
declare @sid int
declare @sqlinsert varchar(max)
Insert into Student (sName, sAddress) values (@sName, @sAddress)
select @sid=sid from Student where sName=@sName
if @English is not null
begin
select @sqlinsert=' insert into Marks(sId,subId,MarkPercent)values ('+convert(varchar(20),@sid)+',1000,'+convert(varchar(20),@English)+')'
exec (@sqlinsert)
end
if @Maths is not null
begin
select @sqlinsert=' insert into Marks(sId,subId,MarkPercent)values ('+convert(varchar(20),@sid)+',2000,'+convert(varchar(20),@maths)+')'
exec (@sqlinsert)
end
if @Science is not null
begin
select @sqlinsert=' insert into Marks(sId,subId,MarkPercent)values ('+convert(varchar(20),@sid)+',3000,'+convert(varchar(20),@Science)+')'
exec (@sqlinsert)
end
End
执行程序:
exec uspAddStudentDetails 'kavin','no:10,Chennai',169,183,150
Student
表中的输出:
sId sName sAddress
100 kavin no:10,Chennai
Marks
表:
mid sId subId MarkPercent
1 100 1000 169
2 100 2000 183
3 100 3000 150