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

急 sqlserver2005 触发器报错!解决办法

2012-01-31 
急 sqlserver2005 触发器报错!触发器已编译成功代码如下:setANSI_NULLSONsetQUOTED_IDENTIFIERONgo--

急 sqlserver2005 触发器报错!
触发器已编译成功
代码如下:

set   ANSI_NULLS   ON
set   QUOTED_IDENTIFIER   ON
go

--   =============================================
--   Author: <Author,,Name>
--   Create   date:   <Create   Date,,>
--   Description: <Description,,>
--   =============================================
ALTER   TRIGGER   [wfi_proc_msg_trigger]  
      ON     [dbo].[WFI_PROC]  
      AFTER   insert
AS  
BEGIN
--   SET   NOCOUNT   ON   added   to   prevent   extra   result   sets   from
--   interfering   with   SELECT   statements.
SET   NOCOUNT   ON;
        --   Insert   statements   for   trigger   here
insert   into   [phs_mess].[sms].[dbo].[MSGTASK](TASKNAME,MANAGER   ,SOURCE   ,GATENAME,SMID,PRIORITY,CODE,MAXNUM,DAYMAXNUM,INFO,INFOFLAG,DOTIME,FLAG   ,SENDNUM   ,STARTTIME,ENDTIME,NEXTTIME   ,DBPROC)
SELECT          
( 'msg '+cast(inserted.procid   as   VARCHAR(100)))   ,
'19341 ',
cast(SUBSTRING(TB_USERS.MbTel,   1,   8)   as   TEXT)   ,
' ',
' ',
1,
15,
1,
1,
WFI_TASK.TaskName,
' ',
getdate(),
1,
0,
getdate(),
dateadd(day,1,getdate()),
10,
' '
FROM                   inserted   INNER   JOIN
TB_USERS   ON   inserted.UserID   =   TB_USERS.UserID   INNER   JOIN
                                            WFI_TASK   ON   inserted.TaskID   =   WFI_TASK.TaskID
WHERE           (WFI_TASK.Enable   =   1)  
AND   (WFI_TASK.Result   LIKE   N '处理中 ')  
AND   (inserted.Finished   =   0)  
AND   (inserted.opened=0)  
AND   (TB_USERS.UserID   in   (182,2506,1454,1453,2882,3039))


insert   into   [phs_mess].[sms].[dbo].[MSGTASKTIME](TASKNAME,STIME,ETIME,INTIME,   FLAG)
select   ( 'msg '+cast(inserted.procid   as   VARCHAR(100)))   as   procid, '00:00:01 ', '23:59:59 ',getdate(),2
FROM                   inserted   INNER   JOIN
TB_USERS   ON   inserted.UserID   =   TB_USERS.UserID   INNER   JOIN
                                            WFI_TASK   ON   inserted.TaskID   =   WFI_TASK.TaskID
WHERE           (WFI_TASK.Enable   =   1)  
AND   (WFI_TASK.Result   LIKE   N '处理中 ')  
AND   (inserted.Finished   =   0)  
AND   (inserted.opened=0)  
AND   (TB_USERS.UserID   in   (182,2506,1454,1453,2882,3039))


END


--[phs_mess]   是连接服务器   就是另一个远程数据库


每当我向wfi_proc插入数据   就报错:

链接服务器 "phs_mess "的   OLE   DB   访问接口   "SQLNCLI "   返回了消息   "该伙伴事务管理器已经禁止了它对远程/网络事务的支持。 "。


消息   7391,级别   16,状态   2,过程   wfi_proc_msg_trigger,第   16   行
无法执行该操作,因为链接服务器   "phs_mess "   的   OLE   DB   访问接口   "SQLNCLI "   无法启动分布式事务。




[解决办法]
SQLNCLI " 无法启动分布式事务。
有没有启动msdtc服务
[解决办法]
2003默认情况下远程分布式事务是关闭,需要打开才行,如果无法进入windows设置,可以查一下该设置的命令(没有用过),然后在sql里面通过xp_cmdshell 执行命令进行设置

热点排行