How to get the size of a varchar[n] field in one SQL statement?
Suppose that I have a SQL table that has a varchar[1000] field called "Remarks".
I would like to craft a single SQL statement, which when executed, will return 1000, or whatever the size of the varchar field might be changed to in the future.
Something like SELECT size(Remarks) FROM mytable
.
How do I do this?
Solution 1:
select column_name, data_type, character_maximum_length
from information_schema.columns
where table_name = 'myTable'
Solution 2:
On SQL Server specifically:
SELECT DATALENGTH(Remarks) AS FIELDSIZE FROM mytable
Documentation
Solution 3:
For SQL Server (2008 and above):
SELECT COLUMNPROPERTY(OBJECT_ID('mytable'), 'Remarks', 'PRECISION');
COLUMNPROPERTY returns information for a column or parameter (id, column/parameter, property). The PRECISION property returns the length of the data type of the column or parameter.
COLUMNPROPERTY documentation