sqlserver 2000/2005 Ambiguous column error错误解决办法

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
今天针对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

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





本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/75025,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
4天前
|
SQL Windows
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
13 4
|
20天前
|
SQL
SQL Server2008 安装报错Restart computer failed的解决办法
SQL Server2008 安装报错Restart computer failed的解决办法
19 0
|
9月前
|
SQL 数据安全/隐私保护
SQLServer 2000 服务不能启动的多种解决办法43.240.156.X
SQLServer 2000 服务不能启动的多种解决办法43.240.156.X
|
10月前
|
SQL 数据库连接
【第一次机房】SQLSERVER 创建ODBC 报错的解决办法 SQLState:'01000'的解决方案
【第一次机房】SQLSERVER 创建ODBC 报错的解决办法 SQLState:'01000'的解决方案
562 0
|
10月前
|
SQL 安全 数据库
SQL Server附加数据库的方法,及出现错误的解决办法(错误:5123)
SQL Server附加数据库的方法,及出现错误的解决办法(错误:5123)
|
存储 数据库连接 数据库
连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法
原文:连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法   本文出处:http://www.cnblogs.com/wy123/p/6110349.html    之前遇到过这么一种情况:   连接数据库的部分Session会出现不定时的阻塞,这种阻塞时长时短,有时候持续较长时间,有时间持续时间较短,没有什么规律。
1536 0
|
SQL 数据库
SQLServer2008R2 发布订阅及相关问题解决办法
原文:SQLServer2008R2 发布订阅及相关问题解决办法 前言:   前两天接到领导的任务,将一个系统A的客户数据同步到另一个系统B中,以后客户录入入口只有A系统,B系统不提供录入入口,因为各种原因不能使用接口方式A系统和B系统直接交互同步,只能通过数据库重A库同步到B库。
1645 0

相关实验场景

更多