2010-07-17 172 views
1

我在寫一個基本的DBMS包,並試圖檢索列長度。這是我使用的檢索信息來源查詢:SQL Server:檢索數據類型長度

SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH 
FROM INFORMATION_SCHEMA.Columns 
WHERE TABLE_NAME = 'testVariables' 

這工作得很好,除了CHARACTER_MAXIMUM_LENGTH沒有問題返回-1所有的時間,當我使用SQL Management Studio中,它說柱長度爲16 .. 。

任何想法?

乾杯, 喬爾

+0

你是否與同一用戶連接? – 2010-07-17 11:07:40

+0

我沒有看到任何問題 - 對於VARCHAR列,它確實返回適當的長度。你在找什麼? INT,DATETIME等字段沒有最大長度 - 它們的長度是給定的,由它們的類型定義 – 2010-07-17 11:17:46

回答

1

看看看看書在線,你會發現,值-1 CHARACTER_MAXIMUM_LENGTH意味着數據類型是大值類型爲XML。

See COLUMNS

+0

您好,感謝您的回答。我在研究爲什麼會出錯時讀到,但它應該返回值16,因爲列是nVarchar(16) - 或者我是厚的? 乾杯, Joel – JHarley1 2010-07-17 11:04:33

+0

我剛創建了一個列nVarchar(16)的測試表,它顯示正確。你確定你在正確的數據庫上下文嗎?或者在不同的模式中沒有這個名字的兩個表? – 2010-07-17 11:10:18

+0

或數據類型是一個INT,DATETIME等 - 只是這不是(N)VARCHAR,也不(N)CHAR – 2010-07-17 11:18:27