[SQL] 어떻게 하나의 SQL 문에서 VARCHAR [N] 필드의 크기를 얻으려면?
SQL어떻게 하나의 SQL 문에서 VARCHAR [N] 필드의 크기를 얻으려면?
나는 VARCHAR "주의"라고 [1000] 필드가있는 SQL 테이블이 있다고 가정하자.
나는 실행될 때, 1000, 또는 무엇이든 VARCHAR 필드의 크기는 향후 변경 될 수를 반환하는 하나의 SQL 문을, 공예 싶습니다.
SELECT 크기와 같은 뭔가 MYTABLE FROM (비고).
이걸 어떻게해야합니까?
해결법
-
==============================
1.
select column_name, data_type, character_maximum_length from information_schema.columns where table_name = 'myTable'
-
==============================
2.특히 SQL 서버에서 :
특히 SQL 서버에서 :
SELECT DATALENGTH(Remarks) AS FIELDSIZE FROM mytable
선적 서류 비치
-
==============================
3.SQL 서버 (이상 2008 년)의 경우 :
SQL 서버 (이상 2008 년)의 경우 :
SELECT COLUMNPROPERTY(OBJECT_ID('mytable'), 'Remarks', 'PRECISION');
COLUMNPROPERTY 컬럼 또는 파라미터 (ID 컬럼 / 파라미터 등록)에 대한 정보를 반환한다. 정밀도 속성은 열 또는 매개 변수의 데이터 유형의 길이를 반환합니다.
COLUMNPROPERTY 문서
-
==============================
4.이 SQL 서버에서 작동합니다 ...
이 SQL 서버에서 작동합니다 ...
SELECT COL_LENGTH('Table', 'Column')
-
==============================
5.나는 컬럼의 총 크기를 찾고이 문서를 맞았다는, 내 솔루션은 MarcE의의 기반으로한다.
나는 컬럼의 총 크기를 찾고이 문서를 맞았다는, 내 솔루션은 MarcE의의 기반으로한다.
SELECT sum(DATALENGTH(your_field)) AS FIELDSIZE FROM your_table
-
==============================
6.t-SQL 위해 나는 VARCHAR 컬럼 (쇼 데이터 정렬 및 is_null 속성)에 대해 다음 쿼리를 사용 :
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
-
==============================
7.
select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'Table1'
-
==============================
8.이것은 VARCHAR NN ()에 대한 최대 유효 길이를 계산하기위한 함수이다 :
이것은 VARCHAR NN ()에 대한 최대 유효 길이를 계산하기위한 함수이다 :
CREATE FUNCTION [dbo].[GetMaxVarcharColumnLength] (@TableSchema NVARCHAR(MAX), @TableName NVARCHAR(MAX), @ColumnName VARCHAR(MAX)) RETURNS INT AS BEGIN RETURN (SELECT character_maximum_length FROM information_schema.columns WHERE table_schema = @TableSchema AND table_name = @TableName AND column_name = @ColumnName); END
용법:
IF LEN(@Name) > [dbo].[GetMaxVarcharColumnLength]('person', 'FamilyStateName', 'Name') RETURN [dbo].[err_Internal_StringForVarcharTooLong]();
from https://stackoverflow.com/questions/5705316/how-to-get-the-size-of-a-varcharn-field-in-one-sql-statement by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 SQL Server의 시간을 비교할 수 있습니까? (0) | 2020.04.30 |
---|---|
[SQL] 어떻게 그룹 CONCAT MySQL의와 JSON 형식을 만들? (0) | 2020.04.30 |
[SQL] mysql을 - 너무 많은 얼마나 많은 열입니까? (0) | 2020.04.30 |
[SQL] MySQL의 쿼리 선택 - 값의 취득에만 처음 10 자 (0) | 2020.04.30 |
[SQL] MySQL의 테이블에서 날짜가 기록의 가장 최근의 세트를 선택하는 방법 (0) | 2020.04.30 |