“Remarks”라는 varchar [1000] 필드가있는 SQL 테이블이 있다고 가정합니다.
실행될 때 1000을 반환하거나 앞으로 varchar 필드의 크기가 변경 될 수있는 단일 SQL 문을 만들고 싶습니다.
같은 것 SELECT size(Remarks) FROM mytable
.
어떻게해야합니까?
답변
select column_name, data_type, character_maximum_length
from information_schema.columns
where table_name = 'myTable'
답변
답변
SQL Server (2008 이상) :
SELECT COLUMNPROPERTY(OBJECT_ID('mytable'), 'Remarks', 'PRECISION');
COLUMNPROPERTY는 열 또는 매개 변수 (id, 열 / 매개 변수, 속성)에 대한 정보를 반환합니다. PRECISION 속성은 열 또는 매개 변수의 데이터 유형 길이를 반환합니다.
답변
이것은 SQL SERVER에서 작동합니다 …
SELECT COL_LENGTH('Table', 'Column')
답변
컬럼의 총 크기를 찾고 있었고이 기사를 쳤습니다. 내 솔루션은 MarcE를 기반으로합니다.
SELECT sum(DATALENGTH(your_field)) AS FIELDSIZE FROM your_table
답변
t-SQL의 경우 varchar 열에 대해 다음 쿼리를 사용합니다 (데이터 정렬 및 is_null 속성 표시).
SELECT
s.name
, o.name as table_name
, c.name as column_name
, t.name as type
, c.max_length
, c.collation_name
, c.is_nullable
FROM
sys.columns c
INNER JOIN sys.objects o ON (o.object_id = c.object_id)
INNER JOIN sys.schemas s ON (s.schema_id = o.schema_id)
INNER JOIN sys.types t ON (t.user_type_id = c.user_type_id)
WHERE
s.name = 'dbo'
AND t.name IN ('varchar') -- , 'char', 'nvarchar', 'nchar')
ORDER BY
o.name, c.name
답변
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'Table1'