问一个触发器的问题 参与有分
我在触发器中 创建了一个新表TABLE1
接下来 要把这个“表名” 作为接下来执行的存储过程的参数
怎么解决这个问题呢 ?
谢谢
如果直接把执行存储过程的这句话写在 创建表的后面的话 出现死循环
在这两个事件中间应该作如何处理呢~
触发器语句如下
CREATE trigger skycn on water_updata
for insert
as
if exists (select * from water_hj.dbo.sysobjects where id = object_id(N '[dbo].[water_hj] ') and OBJECTPROPERTY(id, N 'IsUserTable ') = 1)
drop table water_hj.[dbo].[water_hj]
CREATE TABLE water_hj.[dbo].[water_hj] (
[rdRecordedOn] [datetime] NOT NULL ,
[rdMeterID] [int] NOT NULL ,
[rdLastQty] [numeric](18, 0) NOT NULL ,
[rdCurrQty] [numeric](18, 0) NOT NULL ,
[rdQty] [numeric](18, 0) NOT NULL ,
[rdWaterRate] [money] NOT NULL ,
[rdPollRate] [money] NOT NULL ,
[rdPayed] [bit] NULL ,
[rdAddRate] [money] NOT NULL ,
[Total] [money] NOT NULL ,
[InvoicedOn] [datetime] NOT NULL
) ON [PRIMARY]
exec water_hj..P_SYS_DATAINOUT 'wlj ', 'water_hj ', 'water_hj ', ' ', 'F:\HJ499.TXT ', 'F:\hj499.TXT ', '2006-10-01 ', '2007-9-01 ', 'IN '
water_hj为创建的新表
------解决方案--------------------你是不是存储过程中又调用了表water_update,这属于触发器递归调用,可以禁止递归
sp_dboption '库 ', 'recursive triggers ', 'false '
------解决方案--------------------up
------解决方案--------------------触发器递归问题
Alter Database 你的库名 Set Recursive_Triggers ON
Recursive_Triggers On | OFF
如果指定为ON,将允许递归激发触发器 Recursive_Triggers OFF(默认值)
只允许直接递归,若也要禁止间接递归.用
Sp_Configure 将Nested Triggers 服务器选项设置为0
------解决方案--------------------在触发器里建表
这个做法有点问题,建议建一张临时表或者使用表变量
------解决方案--------------------UP UP