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

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

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

  • 相关阅读:
    原子变量AtomicInteger
    8.2.2.2 Speed of UPDATE Statements 加速UPDATE语句:
    8.2.2 Optimizing DML Statements 优化DML 语句:
    CSS3中-moz、-ms、-webkit和-o分别代表什么意思
    8.2.1.19 Optimizing LIMIT Queries 优化LIMIT 查询:
    java.lang.IllegalArgumentException: Negative time
    8.2.1.17 DISTINCT Optimization
    Python基本语法_函数_参数的多类型传值
    Python基本语法_函数_参数的多类型传值
    8.2.1.16 GROUP BY Optimization
  • 原文地址:https://www.cnblogs.com/shanyou/p/Ambiguous.html
Copyright © 2011-2022 走看看