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

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

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

  • 相关阅读:
    .net实现依赖注入
    Model Validation(模型验证)
    TCP应用
    Jquery框架
    Fiddler工具
    Oracle从11.2.0.2开始,数据库补丁包是一个完整安装包(转)
    java路径中的空格问题(转)
    分析Java的类加载器与ClassLoader(二):classpath与查找类字节码的顺序,分析ExtClassLoader与AppClassLoader的源码
    java中path和classpath
    velocity-1.7中vm文件的存放位置
  • 原文地址:https://www.cnblogs.com/shanyou/p/Ambiguous.html
Copyright © 2011-2022 走看看