2010-03-05 78 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

相關問題