我可能不会更抱歉 - 这个问题非常错误。正如您所发现的那样,错误是由于具有该名称的列不存在。错误和帖子是由于登台服务器和生产服务器之间的错误配置造成的。但是你的答案已经检测到这个错误,很多,非常感谢
以下声明:
select [user] from bookings
让我陷入困境。请注意,保留关键字周围放置了方括号。正如您所看到的,不幸的是,为列名称(当然是用户)选择了保留关键字,但在SQL Server 2000中运行的先前应用程序中,执行的查询没有错误。
不幸的是,在SQL Server 2008中 - 移植到哪个应用程序 - 行为不同,它会抱怨并发出错误。改变数据库表可能是一个令人头疼的问题,因为必须对db和代码进行大量更改。有一种方法可以执行查询,保留列的名称吗?
谢谢!
答案 0 :(得分:0)
你得到了什么错误。我刚刚在我的SQL2008副本中创建了一个预订表,并且
没有出现这样的错误select [user] from bookings
我在另一个数据库中也有一个名为user的表,并且没有问题
答案 1 :(得分:0)
2008就像以前一样,它不希望你使用保留名称,但我没有为它抛出错误。
CREATE TABLE [dbo].[tblUser](
[userid] [int] IDENTITY(1,1) NOT NULL,
[user] [nchar](10) NOT NULL,
CONSTRAINT [PK_tblUser] PRIMARY KEY CLUSTERED
(
[userid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
接着是
select [user] from tbluser
执行时没有生成错误。