首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

2个有关问题 急

2012-03-14 
2个问题 急啊!问题1:条件:表LEND(DEBT)目的:创建一个触发器,限制DEBT使其一次更新不要多余3元运行后显示如

2个问题 急啊!
问题1:
条件:表LEND(DEBT)
目的:创建一个触发器,限制DEBT使其一次更新不要多余3元
运行后显示如下错误:
CREATE TRIGGER RAISE_LIMIT AFTER UPDATE OF DEBT ON LEND REFERENCING NEW ROW AS NROW OLD ROW AS OROW FOR EACH ROW WHEN( (NROW.DEBT-OROW.DEBT)>3) BEGIN ATOMIC SIGNAL SQLSTATE '7500'("DEBT INCREASE 3 YUAN") END
DB21034E 该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在
SQL 处理期间,它返回:
SQL0104N 在 "BT INCREASE 3 YUAN")" 后面找到异常标记
"END"。预期标记可能包括:"<delim_semicolon>"。 LINE NUMBER=1. SQLSTATE=42601

SQL0104N 在 "BT INCREASE 3 YUAN")" 后面找到异常标记 "END"。预 期标记可能包括:"<delim_semicolon>

加@运行脚本也试过了 去掉回车也试过了 都不好用,请大家帮帮忙~
问题2:
如何在一个已经建立的并且指定主键的表上 创建聚簇索引 是不是要把该表默认创建的聚簇索引删除 应该怎么做?
假如有表STUDENT(NUMBER,NAME)

[解决办法]
end之前少了分号吧

[解决办法]
应该是少了分号。
[解决办法]
1、
将你的代码存为TXT
CREATE TRIGGER RAISE_LIMIT AFTER UPDATE OF DEBT ON LEND REFERENCING NEW ROW AS NROW OLD ROW AS OROW FOR EACH ROW BEGIN ATOMIC
if ( (NROW.DEBT-OROW.DEBT)>3) then
 SIGNAL SQLSTATE '7500'("DEBT INCREASE 3 YUAN") 
end if;
END@


db2 -td@ -f testTRI.sql

热点排行