如何实现用触发器产生主键(本题50分)(0分)

  • 主题发起人 主题发起人 youngyxy
  • 开始时间 开始时间
Y

youngyxy

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:
1、表A的结构简单,只有一个字段主键key int;
2、存在一个过程GetNewKey有一个参数@key int output
3、如何在表A上设立一个insert型触发器,采用GetNewKey过程来产生表A的主键。
本题50分。答案一旦采纳,立即开贴给分。
help me!please
 
请大虾出手
给定有理由的否定答案也可以呀。
请,,,,,出手呀
 
SQL Server 我不懂
在IB中,可以类似这样:new.key=getnewkey
 
把过程GETNEWKEY最好写成函数(如果可能的话),然后把函数设置成主键的默认值。
 
create tr_name trigger
alfter insert on A
for each row
begin
GetNewKey(:New.Key);
end
 
我刚看明白,触发器有一个原则,表A触发,触发器中的脚本不能再对表A进行写操作。
你要求的功能好象不能实现
 
这个功能是不能实现的,说明如下:
第一,主键不是是NULL值,
第二,INSERT触发器是在Insert之后才触发的
所以必须给出非空且不重复的值才能完成Insert操作,再去触发Insert触发器,
这样就已经失去完成这个功能意义了。
另外,纠正一下szloner意见,表A的触发器里仍可以对表A进行写操作,
但要注意SQLSERVER触发器调用的设置(尽量不要设成允许递归调用,否则可能引起调用死循环)
如表A insert触发器里有Update 表A,而表A的Update触发器又有Insert表A就会死循环,
如果设置成不允许递归调用不会了,这是举个例子
 
谢谢各位
接受答案了
请 hz_huzhen,szloner到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1399284
拿分
 
后退
顶部