数据库中有两张表,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 ()
@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 ()