2017-08-25 4 views
0

Ich habe eine Tabelle, die ID als eine der Spalte mit einer Größe von 10 hat, dh NUMERIC(10,0). Wenn ich eine Funktion COL_LENGTH verwende, um die Größe der Spalte zu berechnen, gibt es Größe als 9 Wenn ich andererseits dieselbe Funktion verwende, um die Größe der anderen Datentypspalte zu berechnen, gibt sie die Größe richtig an. Haben Sie eine Idee, was der Grund dafür sein kann.Problem bezüglich der Größe der NUMERIC Datenspalte

Antwort

0

COL_LENGTH kehrt definierte Länge in Bytes (nicht Präzision/Skala):

Wenn Sie möchten, Präzision oder Skala Verwendung COLUMNPROPERTY Funktion:

CREATE TABLE t1(c1 nvarchar(40), c2 NUMERIC(10,0)); 
GO 

SELECT COL_LENGTH('t1','c1'), 
     COLUMNPROPERTY (OBJECT_ID('t1'), 'c1', 'Precision'), 
     COL_LENGTH('t1','c2'), 
     COLUMNPROPERTY (OBJECT_ID('t1'), 'c2', 'Precision'); 

-- OUTPUT: 
-- 80   40   9    10 
-- bytes     bytes 

Rextester Demo

Verwandte Themen