zoukankan      html  css  js  c++  java
  • sqlserver 2000/2005 Ambiguous column error错误解决办法

    今天针对Sql server 2005的脚本在Sql server 2000上执行,发生了两个错误
    Msg 209, Level 16, State 1, Procedure tbh_Forums_GetUnapprovedPosts, Line 13
    Ambiguous column name 'AddedDate'.
    Msg 209, Level 16, State 1, Procedure tbh_Forums_GetThreadByID, Line 13
    Ambiguous column name 'AddedDate'.

    原来就是Forums表中和Post表中具有相同的列AddedDate,通过as 方式改写就可以解决了
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbh_Forums_GetThreadByID]') AND type in (N'P', N'PC'))
    BEGIN
    EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[tbh_Forums_GetThreadByID]
    (
       @ThreadPostID  int
    )
    AS
    SET NOCOUNT ON
      
    SELECT tbh_Posts.PostID, tbh_Posts.AddedDate as AddedDate, tbh_Posts.AddedBy, tbh_Posts.AddedByIP, tbh_Posts.ForumID, tbh_Posts.ParentPostID, tbh_Posts.Title, tbh_Posts.Body, tbh_Posts.Approved, tbh_Posts.Closed, tbh_Posts.ViewCount, tbh_Posts.ReplyCount, tbh_Posts.LastPostDate, tbh_Posts.LastPostBy,
       tbh_Forums.Title AS ForumTitle
       FROM tbh_Posts INNER JOIN
          tbh_Forums ON tbh_Posts.ForumID = tbh_Forums.ForumID
       WHERE PostID = @ThreadPostID OR ParentPostID = @ThreadPostID
       ORDER BY AddedDate ASC'
    END
    GO

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbh_Forums_GetUnapprovedPosts]') AND type in (N'P', N'PC'))
    BEGIN
    EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[tbh_Forums_GetUnapprovedPosts]
    AS
    SET NOCOUNT ON

    SELECT tbh_Posts.PostID, tbh_Posts.AddedDate  as AddedDate, tbh_Posts.AddedBy, tbh_Posts.AddedByIP, tbh_Posts.ForumID, tbh_Posts.ParentPostID, tbh_Posts.Title, tbh_Posts.Approved, tbh_Posts.Closed, tbh_Posts.ViewCount, tbh_Posts.ReplyCount, tbh_Posts.LastPostDate, tbh_Posts.LastPostBy,
       tbh_Forums.Title AS ForumTitle, CASE
                                        WHEN ParentPostID = 0 THEN 1
                                        ELSE 0
                                     END AS IsThreadPost
       FROM tbh_Posts INNER JOIN
          tbh_Forums ON tbh_Posts.ForumID = tbh_Forums.ForumID
       WHERE Approved = 0
       ORDER BY IsThreadPost DESC, AddedDate ASC'
    END
    GO

    虽然这样解决了问题,这不应该是问题的真正原因,各位同学谁知道这个问题的真正原因?

    欢迎大家扫描下面二维码成为我的客户,为你服务和上云

  • 相关阅读:
    无题
    晒新玩具
    PHP开发调试环境配置(基于wampserver+Eclipse for PHP Developers )
    Java
    [转]const 与 readonly知多少
    Watin 杂谈
    WCF
    [转]: 两分钟彻底让你明白Android Activity生命周期(图文)!
    【转】单链表逆序
    桥梁模式和适配器模式的区别
  • 原文地址:https://www.cnblogs.com/shanyou/p/Ambiguous.html
Copyright © 2011-2022 走看看