使用declare执行超长语句 请问数据库,触发器,触发insert的语句怎么写啊?

[更新]
·
·
分类:互联网
1274 阅读

使用declare执行超长语句

请问数据库,触发器,触发insert的语句怎么写啊?

请问数据库,触发器,触发insert的语句怎么写啊?

create trigger insert_data after insert on data_table FOR each row
begin
declare topic_id int
select topic_uuid into topic_id from subtopic_table where subtopic__uuid
UPDATE sub_data_sum set datasumdatasum 1 where sub_data__uuid
update data_sum set datasumdatasum 1 where data_
update data_sum set datasumdatasum 1 where data__id
end
给你看一下我做的触发器吧,begin和end里面是你要做的处理,insert_data触发器名,after insert 意思就是在insert执行之后

请问什么是SQL的DECLARE语句?

变量是在批处理或过程的主体中用 DECLARE 语句声明的,并用 SET 或 SELECT 语句赋值。
游标变量可使用此语句声明,并可用于其他与游标相关的语句。所有变量在声明后均初始化为 NULL。在sql里按F1自己看吧

临时表有哪几种?

SQL Server 支持三种类型的临时表:局部临时表、全局临时表及表变量。所有三种类型的临时表都是在tempdb数据库中创建的。
1. 局部临时表
要创建局部临时表,只需要在命名时以单个数字符号(#)作为前缀,例如#T1。
局部临时表只对创建它的会话在创建级和调用堆栈内部级(内部的过程、函数、触发器、以及动态批处理)是可见的。当创建级例程弹出调用堆栈,SQL Server 就会自动删除相应的临时表。
2. 全局临时表
如果创建的是全局临时表,则它对其他所有会话都可见。当创建临时表的会话断开数据库的联接,而且也没有活动在引用全局临时表,SQL Server 会自动删除相应的全局临时表。要创建全局临时表,只需要在命名时用两个数字符号(##)作为前缀,如##T1。
当需要和所有人共享临时数据时,就可以用全局临时表。访问全局临时表不需要任何特殊的权限,所有人都可以获取完整的DDL和DML访问。当然,每个人都可以完全访问也意味着任何人都可以删除这个表,所以也应该谨慎考虑全局临时表的副作用。
注意:只要创建全局临时表的会话断开了数据库的联接,而且也没有其他活动引用全局临时表,SQL Server 就会自动删除它。
3. 表变量和局部临时表在某些方面有相同之处,也有不同之处。声明表变量的方式和声明其他变量类似,使用的都是DECLARE语句。
和使用局部临时表一样,表变量在tempdb数据库中也有对应的表作为其物理表示,而不是像通常所理解的那样,以为表变量只在内存中存在。和局部临时表类似,表变量也只对创建它的会话可见,但允许访问的范围更有限,它只对当前批处理可见。表变量对调用堆栈中当前批处理的内部批处理是不可见的,对会话中随后的批处理也是不可见的