我需要一個表來記錄數據模型中的所有類型。我沒有那麼多的類型,但是他們的公平交易。理想情況下,簡短的描述性名稱可以很好地工作。SQL Server char(1)和char(2)列
所以我這樣做:
CREATE TABLE EntityType
(
EntityTypeID char(2) PRIMARY KEY,
EntityTypeName varchar(128) NOT NULL
)
並把一些數據表:
INSERT INTO EntityType VALUES ('A', 'Type1')
INSERT INTO EntityType VALUES ('B', 'Type2')
但是,我可以查詢像這樣令我感到困惑:
DECLARE @pEntityType char(1)
SET @pEntityType = 'A'
SELECT ''''+EntityTypeID+'''', EntityTypeName
FROM EntityType
WHERE EntityTypeID = @pEntityType
結果產生'A',並且該文字中有空格。
我的理解是,有是一個的轉換CHAR(1)的隱式轉換 - > CHAR(2)
我不是在抱怨,但什麼是這背後的原理是什麼?
好吧,我仍然沒有抱怨,而且我確實覺得它很有用,但我確實發現它很奇怪......所有字符串比較都應該忽略拖尾空白的決定對我來說似乎仍然有些武斷。 – 2010-10-07 18:52:27