繁体   English   中英

SQL Server 2008/2000的区别在于使用保留关键字作为列名

[英]SQL Server 2008 /2000 difference using as column name a reserved keyword

我再也不能对不起大家-这个问题是一个非常错误的问题。 如您所见,该错误是由于不存在具有该名称的列而引起的。 该错误和发布是由于登台服务器和生产服务器之间的未对准。 但是您的答案已检测到错误,非常感谢


以下语句:

select [user] from bookings

给我带来麻烦。 请注意,在保留关键字的周围已放置了方括号。 如您所见,不幸的是,已经为列名(当然是用户)选择了一个保留关键字,但是在SQL Server 2000中运行的先前应用程序中,查询执行没有错误。

不幸的是,在将应用程序移植到的SQL Server 2008中,行为不同,它抱怨并发出错误。 更改数据库表可能会令人头疼,因为必须对db和代码进行大量更改。 有没有一种方法可以执行查询以保持列名?

谢谢!

你遇到了什么错误。 我刚刚在我的SQL2008副本中创建了一个Bookings表,但没有得到这样的错误

select [user] from bookings

我在另一个数据库中也有名为user的表,没有问题

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

执行时未产生错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM