2012-08-09 27 views
1

我正在使用SQL Server Compact Edition。我有一個簡單的表:爲什麼此查詢使用字符串連接在SQL Server Compact Edition中引發錯誤?

CREATE TABLE people (
    ident NCHAR(7) NOT NULL UNIQUE, 
    first_name NVARCHAR(100) NOT NULL, 
    last_name NVARCHAR(100) NOT NULL, 
    notes NVARCHAR(4000) NULL, 
    birth_year SMALLINT NULL, 
    birth_location NVARCHAR(200) NULL, 
    amount SMALLINT NULL, 
    location NCHAR(6) NOT NULL, 
    title_date INT NOT NULL, 
    num INT NOT NULL UNIQUE, 
    PRIMARY KEY (ident) 
); 

和一個簡單的插入語句:

INSERT INTO people (ident, first_name, last_name, notes, birth_year, birth_location, amount, location, title_date, num) 
VALUES ('t1bbbee', 'Sam', 'Simpson', 'HKiONV6JGxKdd2qs5pQ3GGWlrSPRSfu19cJ6zyEn2qT1WHyv5N', 2007, 'N6fCeYVqJcjDov9DDmLfkpYtGs0WV4QeSVRaKm659lw52W21TX', 1143, 'YcbKbv', 19805274, 7735) 

而且根據我的documentation讀一個簡單的查詢,應能正常工作:

SELECT p.ident + "-" + p.first_name + " " + p.last_name AS "name" 
FROM people AS p 
ORDER BY p.ident 

但是,這會在Visual Studio和SQL Fiddle(後者使用SQL Server,而不是SQL Server CE)中返回錯誤:

無效的列名 ' - ' .:選擇p.ident + 「 - 」 + p.first_name + 「」 + p.last_name AS 「名字」 FROM人民爲P ORDER BY p.ident

問題是什麼?

回答

4

您正在使用雙引號,而不是單引號:

SELECT p.ident + '-' + p.first_name + ' ' + p.last_name name 
FROM people AS p 
ORDER BY p.ident 

SQL Fiddle

+0

嗯,我會被定罪... +1。多麼愚蠢的錯誤。 – 2012-08-09 20:21:24

+0

是的,我們都已經做到了。 :) – Taryn 2012-08-09 20:23:17

相關問題