• 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

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

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

  • 相关阅读:
    Linux shell 进制转换
    shell 的getopts用法
    COOKIE 和SESSION
    wcf在iis6上的部署
    fastjson修改json的值(转)
    jsonpath的简单用法(转)
    fastjson序列化定制过滤器
    java操作excel给单元格加下拉列表(转)
    Django Admin管理后台详解1(转)
    Django Admin管理后台详解2(转)
  • 原文地址:https://www.cnblogs.com/shanyou/p/Ambiguous.html
Copyright © 2020-2023  润新知