CREATE TRIGGER [OnInsert] ON dbo.customer 觸發器問題,高手請入(50分)

  • 主题发起人 主题发起人 Fucool
  • 开始时间 开始时间
F

Fucool

Unregistered / Unconfirmed
GUEST, unregistred user!
CREATE TRIGGER [FYKInsert] ON dbo.customer
FOR INSERT
AS
set nocount on
declare @valuea1 varchar(8)
declare @valuea2 varchar(50)
declare @valuea3 varchar(50)
declare @valuea4 varchar(50)
declare @valuea5 varchar(50)
declare @valuea6 varchar(50)
declare @valuea7 varchar(50)
declare @valuea8 varchar(50)
declare @valuea9 varchar(50)

declare cur cursor for select UserID, homepage, companyname, companyadd, telephone, faxphone, corporation, money, UserEmail from inserted
open cur
fetch next from cur into @valuea1,@valuea2,@valuea3,@valuea4,@valuea5,@valuea6,@valuea7,@valuea8,@valuea9
while @@FETCH_STATUS = 0
begin
insert into SqlText (SqlText) values(' if not exists (select UserID from customer where UserID= ''' + @valuea1+''' ) INSERT INTO customer (UserID, homepage, companyname, companyadd, telephone, faxphone, corporation, money, UserEmail) VALUES (''' + @valuea1+ ''',''' + @valuea2+ ''',''' +@valuea3+ ''',''' +@valuea4+ ''',''' +@valuea5+ ''',''' +@valuea6+ ''','''+@valuea7+ ''',''' +@valuea8+ ''',''' + @valuea9 +''')')
fetch next from cur into @valuea1,@valuea2,@valuea3,@valuea4,@valuea5,@valuea6,@valuea7,@valuea8,@valuea9
end
close cur
deallocate cur
set nocount off

我做了一個觸發器,如上, 用於記錄數據庫異動情況,但是有個怪現象,telephone, faxphone, corporation, money, UserEmail等這些字段隻有有一個沒有輸入,即為空時
出現了這個SQL語句沒有產生的情況,字段全部輸入則沒有問題,請教?????
 
兄弟們,急瘋了,援手呀,多謝!!!!!
 
在SQL中,缺省情况下null与任何数据进行计算时结果为null,所以你只要一个为空,组合后的字符串肯定为空。你可以这样:
while @@FETCH_STATUS = 0
begin
select @valuea1=IsNull(@valuea1,'NULL'),@valuea2=IsNull(@valuea2,'NULL'),
@valuea3=IsNull(@valuea3,'NULL'),@valuea4=IsNull(@valuea4,'NULL'),
@valuea5=IsNull(@valuea5,'NULL'),@valuea6=IsNull(@valuea6,'NULL'),
@valuea7=IsNull(@valuea7,'NULL'),@valuea8=IsNull(@valuea8,'NULL'),
@valuea9=IsNull(@valuea9,'NULL')
insert ......
 
TYZhang, 多謝!
此法我也想過,不過不知道有沒有更好的辦法,如果沒有更好的辦法也隻好如此了。
謝謝!
 
晕,这就是更好的办法了.
 
也隻好用這辦法了,另外請教 如何給一個日期類型的字段付空值


INSERT INTO customer (mydate) VALUES ( 空日期 )

謝謝!!!!
 
INSERT INTO customer(mydate) VALUES(null)
 
多人接受答案了。
 
后退
顶部