试试这个:convert (varchar(10),convert(datetime,'2004-1-5 9:21:58' ),120)
触发器:
CREATE TRIGGER *****name ON 表名
INSTEAD OF INSERT
AS
if exists(select * from 表名 where jh=inserted.jh and dgdate=inserted.dgdate) begin
update num=num+要添加的值(你的操作)
end
触发器:
CREATE TRIGGER *****name ON 表名
INSTEAD OF INSERT
AS
if exists(select * from 表名 where jh=inserted.jh and dgdate=inserted.dgdate) begin
update num=num+要添加的值(你的操作)
end
if exists(select * from Orders where jh=myjh and dgdate=mydate)
begin
update Orders set num=num+1 where jh=myjh and dgdate=mydate
end
else
begin
insert into Orders values(myjh,mydate)
end
CREATE TRIGGER *****name ON 表名
INSTEAD OF INSERT
AS
if exists(select * from 表名 where jh=(select jh from inserted) and dgdate=(select dgdate from inserted)) begin
update num=num+要添加的值(你的操作)
end
INSTEAD OF INSERT
AS
update test set num=num+inserted.num from inserted where test.jh=inserted.jh and test.dgdate=inserted.dgdate
insert into test select * from inserted where not exists(select * from test,inserted where test.jh=inserted.jh and test.dgdate=inserted.dgdate )
如果你想要取当前日期,默认值可以写convert (varchar(10),getdate(),120);
2,你发的第2个短信:
strSQL="insert into ljdd (jh,ddbh,wxz,uname,num) values( "&id&",'"&session("inBillNo")&"','"&session("wxz")&"','"&session("xingming")&"',"&num&")"
conn.execute strSQL
触发器的INSTEAD OF INSERT是替代insert操作,你尽管往里插入值,至于触发器怎么接收传的值,是因为有inserted\deleted两个临时系统表(你看不见的),sqlserver底层也是由他们控制事务的,比如你在触发器里想访问新插入的值,就select .... from inserted
想访问将被更改的旧值select ... from deleted
想访问将被删除的旧值select ... from deleted
另外包括for insert \ for update \for delete \INSTEAD OF (替代操作)
注意一点:触发器没执行完,所有数据都还没变呢!
INSTEAD OF INSERT
AS
update test set test.num=test.num+inserted.num from inserted where test.jh=inserted.jh and test.dgdate=inserted.dgdate
insert into test select * from inserted where not exists(select * from test,inserted where test.jh=inserted.jh and test.dgdate=inserted.dgdate )