惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - Franky
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
博客园 - 聂微东
S
SegmentFault 最新的问题
量子位
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页

博客园 - 老冯

项目管理: 软件质量的可靠保证 最新blog程序收集 真假羊绒鉴别方法 Windos 下修改修改远程桌面端口方法 FTP命令详解 RSS 2.0规范 2006上海国资委首页设计稿 ADO.NET数据集又是我需要学习的一个好东东 asp.net技巧收录 javascript特效收藏 发现一款绿色toolbar工具 目录同步工具-DirWatcher 轻松一下,今天的事情放一放 今日手记-星期六的生活 各大主流BBS论坛程序简介 DataGrid排训功能讲解 开源:MIS金质打印通原理及实现 Step by step (1) 汽车制造企业ERP需求分析与解决方案 搜索SEO代码 - 老冯 - 博客园
WDCM推荐的触发器
老冯 · 2006-10-24 · via 博客园 - 老冯

--触发器根据来源稿件的自定义属性(domainname)更新到推荐对象
--使前缀加上网站全路经
--推荐稿件对象表userobject6
--需要配合自定义函数得到2级自定义属性domainname名

CREATE  TRIGGER [insert_suggest] ON [userobject6]
FOR INSERT
AS
DECLARE @link   VARCHAR(256),
        @id     INT,
        @domainname1 VARCHAR(1000),
        @domainname VARCHAR(1000),
        @domainname2 VARCHAR(1000),
        @userprop2 VARCHAR(1000)
IF UPDATE(userprop3)

BEGIN
    SELECT @link = userprop3,@domainname1 = userprop1,@userprop2 = userprop2,@id = idleaf FROM inserted
    IF @@ROWCOUNT > 0
    BEGIN
        SELECT @domainname =  dbo.uf_Getn1(@domainname1) FROM userobject6
        IF @@ROWCOUNT > 0 and @domainname  is not null and @domainname<>''     
        BEGIN
          IF RIGHT(@domainname,1)='/'
          set @domainname2 = SUBSTRING(@domainname,1,(LEN(@domainname)-1))
          ELSE
          set @domainname2 = @domainname
          
            UPDATE userobject6 SET userprop2=@domainname2+'/'+@userprop2  WHERE idleaf = @id
        END
    END
END


--此自定义函数是根据栏目路径获取二级自定义属(domainname)名
--如输入值:‘/卫生局/头条新闻’


CREATE  FUNCTION uf_Getn1 (@p_pathname VARCHAR(1000))
RETURNS VARCHAR(500)
AS
BEGIN
 -- 如果出现错误,则返回/或是NULL
 -- SQL 写法
 DECLARE @v_NodeName varchar(200),
 @v_Node varchar(1000),
 @v_nodepath varchar(1000),
  @first  INT,
  @second INT
  
 set @v_NodeName = ''
 set @v_Node = substring(@p_pathname,2,500)
 
 IF @v_Node = ''
  BEGIN
   set @v_NodeName = 'null'
   RETURN (@v_NodeName)
  END
  SELECT @first  = CHARINDEX('/', @v_Node)
  SELECT @second = CHARINDEX('/', @v_Node, @first + 1)
  IF @second>0
  SELECT @v_nodepath = SUBSTRING(@v_Node, 1, @second)
  ELSE
  SELECT @v_nodepath = @v_Node+'/'
  BEGIN
    set @v_NodeName = (SELECT userprop1
     FROM NodeTable
     where dbo.uf_getpath(idnode) = @v_nodepath)
    if @@rowcount = 0
     RETURN 'null'
  END
 RETURN @v_NodeName
END