2010-03-05 51 views
0

我可能不是更多的抱歉家伙 - 问题是一个非常错误的。正如你发现的那样,错误是由于这个名字的柱子不存在。错误和帖子是由于暂存服务器和生产服务器之间的错误。但已被你的答案,检测出错误的这么多,非常感谢使用SQL Server 2008/2000作为列名保留关键字的区别


下面的语句:

select [user] from bookings 

是把我的烦恼。请注意,方括号已放置在保留关键字周围。正如你所看到的,不幸的是,一个保留关键字已经被选择用于列名(当然是一个用户),但是在SQL Server 2000中运行的以前的应用程序中,查询被没有错误地执行。

不幸的是,在SQL Server 2008中 - 应用程序被移植到其中 - 行为是不同的,它抱怨并发出错误。改变数据库表可能是一个令人头疼的问题,因为必须对数据库和代码进行很多更改。有一种方法可以执行查询以保留列的名称?

谢谢!

+4

发布错误是有帮助的 – Andrey 2010-03-05 11:33:02

+0

是你** 200%确定**你的新表有一个名为[user]的列?从我有限的意大利语中,我会说这正是错误所说的:该列无效,例如它不存在.... – 2010-03-05 11:58:03

回答

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 

生成于执行任何错误。

0

你得到了什么错误。我刚刚创建了一个预约表,我SQL2008的副本,并没有得到这样的错误与

select [user] from bookings 

我也有一个名为user表在不同的数据库,并没有问题

+0

我收到以下消息(意大利语,但我猜意思很清楚): Messaggio 207,livello 16,stato 1,riga 2 Il nome di colonna'user'nonè VALIDO。 – Daniel 2010-03-05 11:46:59

+0

错误207通常指向列中不存在的列。错误是否仅在您的应用程序中发生,或者如果您从管理工作室运行它,是否会得到相同的错误?此外,您是否可以在升级后确认该列确实存在于预订表中,并且尚未通过升级重命名 – CResults 2010-03-05 11:56:34

+0

Sei sicuro che la colonna“user”esiste nella tabella“bookings”:-) – CResults 2010-03-05 12:08:48

相关问题