数据库中有两张表,A表主键为自动增长的并且是B表的外键且允许为空。现在要通过编程向B表中插入数据,可是在程序中是不允许给Int类型赋空值的如果不赋值就默认为0。为了解决这个为题最后考虑用存储过程的If Else最方便,具体的存储过程如下
create PROCEDURE [dbo].[P_Form_Control_Info_Add]
@TypeName varchar(20),
@Description varchar(50),
@CtlColSpan int,
@Sort int,
@SourceID int,
@FieldID int,
@TableID int
AS
if @SourceID = 0
begin
INSERT INTO T_Form_Control_Info (
[TypeName],
[Description],
[CtlColSpan],
[Sort],
[FieldID],
[TableID]
) VALUES (
@TypeName,
@Description,
@CtlColSpan,
@Sort,
@FieldID,
@TableID
)
end
else
begin
INSERT INTO T_Form_Control_Info (
[TypeName],
[Description],
[CtlColSpan],
[Sort],
[SourceID],
[FieldID],
[TableID]
) VALUES (
@TypeName,
@Description,
@CtlColSpan,
@Sort,
@SourceID,
@FieldID,
@TableID
)
end
return SCOPE_IDENTITY()