当给 server sql 数据库添加一行时 想使行为 null 的域值为 0
在 server sql 数据库设计表里 使域的默认值为 (0) 通过c#程序添加行时依然是null
现在我想通过触发器 来实现 A 表 A表
------------------------ 实际想每添加1行 结果为 ------------------------------------
名称 数量1 数量2 名称 数量1 数量2
玉米 10 null 玉米 10 0
小麦 null 20 小麦 0 20 也就是null 在添加时为0
请教
在 server sql 数据库设计表里 使域的默认值为 (0) 通过c#程序添加行时依然是null
现在我想通过触发器 来实现 A 表 A表
------------------------ 实际想每添加1行 结果为 ------------------------------------
名称 数量1 数量2 名称 数量1 数量2
玉米 10 null 玉米 10 0
小麦 null 20 小麦 0 20 也就是null 在添加时为0
请教
if object_id('[A]') is not null drop table [A]
go
create table [A]
([名称] varchar(4),
[数量1] int default 0,
[数量2] int default 0,
[数量3] int
)
goinsert [A](名称,数量1) select '玉米',10;
go
insert [A](名称,数量1,数量2) select '小麦',null,20
go
select * from A
/**
名称 数量1 数量2 数量3
---- ----------- ----------- -----------
玉米 10 0 NULL
小麦 NULL 20 NULL(所影响的行数为 2 行)**/
楼主自己参考一下
A 表
------------------------
名称 数量1
大豆 10 要结果是
A 表
------------------------
名称 数量1 数量2
玉米 10 0
因为我是用c# 做程序 用的是DataTable 绑在GeidView上的提交的 ---数量2--这个字段我在程序里没调用它 因为要减少数据流量现在想 用触发器 去在远程数据库上 把---数量2-- 值改为 0这样后期统计时减少判断
on A
instead of insert
as
insert A(名称,数量1,数量2 ) select 名称,isnull(数量1,0),isnull(数量2,0) from inserted
go但做这个触发器之前,要对以前的数据先做处理update A set 数量1=0 where 数量1 is null;
update A set 数量2=0 where 数量2 is null;