[SQL] SQL 문은 열 유형을 얻을 수 있습니다
SQLSQL 문은 열 유형을 얻을 수 있습니다
테이블의 컬럼의 형식을 반환 할 수있는 SQL 문이 있습니까?
해결법
-
==============================
1.SQL Server를 사용 :
SQL Server를 사용 :
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'yourTableName' AND COLUMN_NAME = 'yourColumnName'
-
==============================
2.TSQL에서 가장 쉬운 방법은 다음과 같습니다
TSQL에서 가장 쉬운 방법은 다음과 같습니다
SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'yourTableName'
-
==============================
3.SQL Server의 경우,이 시스템 저장 프로 시저 컬럼 데이터 유형을 포함, 모든 테이블 정보를 반환합니다 :
SQL Server의 경우,이 시스템 저장 프로 시저 컬럼 데이터 유형을 포함, 모든 테이블 정보를 반환합니다 :
exec sp_help YOURTABLENAME
-
==============================
4.TSQL / MSSQL에서 그것은 다음과 같습니다
TSQL / MSSQL에서 그것은 다음과 같습니다
SELECT t.name, c.name FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id JOIN sys.types y ON y.user_type_id = c.user_type_id WHERE t.name = ''
-
==============================
5.오라클 SQL에서이 작업을 수행합니다 :
오라클 SQL에서이 작업을 수행합니다 :
SELECT DATA_TYPE FROM all_tab_columns WHERE table_name = 'TABLE NAME' -- in uppercase AND column_name = 'COLUMN NAME' -- in uppercase
-
==============================
6.당신이 MySQL을 사용하는 경우 당신은 시도 할 수
당신이 MySQL을 사용하는 경우 당신은 시도 할 수
SHOW COLUMNS FROM `tbl_name`;
dev.mysql.com에 열 표시
그렇지 않으면 당신은 할 수 있어야
DESCRIBE `tbl_name`;
-
==============================
7.MS SQL을 사용하여 또 다른 변화 :
MS SQL을 사용하여 또 다른 변화 :
SELECT TYPE_NAME(system_type_id) FROM sys.columns WHERE name = 'column_name' AND [object_id] = OBJECT_ID('[dbo].[table_name]');
-
==============================
8.ALL / MSSYAL 사용
ALL / MSSYAL 사용
이 쿼리는 당신을 얻을 것이다 : 테이블 이름, 열 이름, 데이터 유형, 데이터 유형 길이 및 허용 널 (null)
SELECT TABLE_NAME,COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name'
변경해야 할 유일한 것은 your_table_name입니다.
-
==============================
9.
USE [YourDatabaseName] GO SELECT column_name 'Column Name', data_type 'Data Type' FROM information_schema.columns WHERE table_name = 'YourTableName' GO
이렇게하면 열 이름을 보여주는 값의 열 이름을 반환하고, 그 열의 데이터 형식 (int 치의은,, 등으로 VARCHAR).
-
==============================
10.IBM DB2의 경우 :
IBM DB2의 경우 :
SELECT TYPENAME FROM SYSCAT.COLUMNS WHERE TABSCHEMA='your_schema_name' AND TABNAME='your_table_name' AND COLNAME='your_column_name'
-
==============================
11.위의 답변에 구축하기 위해, 당신이 열을 선언해야하는 것과 같은 형식의 열 데이터 유형을 얻기 위해 종종 유용하다.
위의 답변에 구축하기 위해, 당신이 열을 선언해야하는 것과 같은 형식의 열 데이터 유형을 얻기 위해 종종 유용하다.
예를 들어, VARCHAR (50) VARCHAR (최대), 소수 (p는, S).
이것은 당신이 할 수 있습니다 :
SELECT [Name] = c.[name] , [Type] = CASE WHEN tp.[name] IN ('varchar', 'char') THEN tp.[name] + '(' + IIF(c.max_length = -1, 'max', CAST(c.max_length AS VARCHAR(25))) + ')' WHEN tp.[name] IN ('nvarchar','nchar') THEN tp.[name] + '(' + IIF(c.max_length = -1, 'max', CAST(c.max_length / 2 AS VARCHAR(25)))+ ')' WHEN tp.[name] IN ('decimal', 'numeric') THEN tp.[name] + '(' + CAST(c.[precision] AS VARCHAR(25)) + ', ' + CAST(c.[scale] AS VARCHAR(25)) + ')' WHEN tp.[name] IN ('datetime2') THEN tp.[name] + '(' + CAST(c.[scale] AS VARCHAR(25)) + ')' ELSE tp.[name] END , [RawType] = tp.[name] , [MaxLength] = c.max_length , [Precision] = c.[precision] , [Scale] = c.scale FROM sys.tables t JOIN sys.schemas s ON t.schema_id = s.schema_id JOIN sys.columns c ON t.object_id = c.object_id JOIN sys.types tp ON c.user_type_id = tp.user_type_id WHERE s.[name] = 'dbo' AND t.[name] = 'MyTable'
-
==============================
12.ALTER 열 동적 SQL에 사용 예를 들어, 실제 선언 된 데이터 유형을 검색하려면이 같은 것을 사용할 수 있습니다 :
ALTER 열 동적 SQL에 사용 예를 들어, 실제 선언 된 데이터 유형을 검색하려면이 같은 것을 사용할 수 있습니다 :
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE + CASE WHEN DATA_TYPE IN ('char','nchar','varchar','nvarchar','binary','varbinary') AND CHARACTER_MAXIMUM_LENGTH > 0 THEN COALESCE('('+CONVERT(varchar,CHARACTER_MAXIMUM_LENGTH)+')','') ELSE '' END + CASE WHEN DATA_TYPE IN ('decimal','numeric') THEN COALESCE('('+CONVERT(varchar,NUMERIC_PRECISION)+','+CONVERT(varchar,NUMERIC_SCALE)+')','') ELSE '' END AS Declaration_Type, CASE WHEN IS_NULLABLE='NO' THEN 'NOT ' ELSE '' END + 'NULL' AS Nullable FROM INFORMATION_SCHEMA.COLUMNS ORDER BY 1,2
-
==============================
13.내 경우에는 내가 여기 어쨌든 함수 내가 그 반환 전체 데이터 유형을 만든 것입니다 동적 SQL (전율!)에 대한 데이터 유형을 얻을 필요가 있었다. 반환하는 대신 '소수'의 예를 들어 그것은 (18,4) DECIMAL을 반환 : dbo.GetLiteralDataType를
내 경우에는 내가 여기 어쨌든 함수 내가 그 반환 전체 데이터 유형을 만든 것입니다 동적 SQL (전율!)에 대한 데이터 유형을 얻을 필요가 있었다. 반환하는 대신 '소수'의 예를 들어 그것은 (18,4) DECIMAL을 반환 : dbo.GetLiteralDataType를
-
==============================
14.ALL / MSSYAL 사용
ALL / MSSYAL 사용
당신은 키워드 INTO 사용할 수 있습니다.
실제 테이블에 SELECT의 결과
예 : real_table_name INTO .... 선택
후
sp_help real_table_name
-
==============================
15.스키마, 테이블, 열, 유형, MAX_LENGTH, IS_NULLABLE 얻을이 쿼리를 사용하여
스키마, 테이블, 열, 유형, MAX_LENGTH, IS_NULLABLE 얻을이 쿼리를 사용하여
SELECT QUOTENAME(SCHEMA_NAME(tb.[schema_id])) AS 'Schema' ,QUOTENAME(OBJECT_NAME(tb.[OBJECT_ID])) AS 'Table' ,C.NAME as 'Column' ,T.name AS 'Type' ,C.max_length ,C.is_nullable FROM SYS.COLUMNS C INNER JOIN SYS.TABLES tb ON tb.[object_id] = C.[object_id] INNER JOIN SYS.TYPES T ON C.system_type_id = T.user_type_id WHERE tb.[is_ms_shipped] = 0 ORDER BY tb.[Name]
-
==============================
16.
SHOW COLUMNS FROM //table_name// ;
그것은 테이블의 모든 컬럼에 대해 당신에게 정보를 제공 할 것입니다.
-
==============================
17.스파크 SQL의 경우 :
스파크 SQL의 경우 :
DESCRIBE [db_name.]table_name column_name
-
==============================
18.아파치 더비를 들어이 답변에서와 같이
아파치 더비를 들어이 답변에서와 같이
select columndatatype from sys.syscolumns where referenceid = ( select tableid from sys.systables where tablename = 'YOUR_TABEL_NAME' and columnname= 'YOUR_COLUMN_NAME')
-
==============================
19.vb60에서 당신은이 작업을 수행 할 수 있습니다
vb60에서 당신은이 작업을 수행 할 수 있습니다
Public Cn As ADODB.Connection 'open connection Dim Rs As ADODB.Recordset Set Rs = Cn.OpenSchema(adSchemaColumns, Array(Empty, Empty, UCase("Table"), UCase("field")))
'샘플 (valRs)는 rs.fields 내 기능 ( "CHARACTER_MAXIMUM_LENGTH을"입니다 값입니다.)
RT_Charactar_Maximum_Length = (ValRS(Rs, "CHARACTER_MAXIMUM_LENGTH")) rt_Tipo = (ValRS(Rs, "DATA_TYPE"))
-
==============================
20.어떤 사람들은 데이터 유형뿐만 아니라 정밀도를 요구 되었기 때문에, 나는 이러한 목적을 위해 만든 나의 스크립트를 공유하고 싶습니다.
어떤 사람들은 데이터 유형뿐만 아니라 정밀도를 요구 되었기 때문에, 나는 이러한 목적을 위해 만든 나의 스크립트를 공유하고 싶습니다.
SELECT TABLE_NAME As 'TableName' COLUMN_NAME As 'ColumnName' CONCAT(DATA_TYPE, '(', COALESCE(CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, DATETIME_PRECISION, ''), IIF(NUMERIC_SCALE <> 0, CONCAT(', ', NUMERIC_SCALE), ''), ')', IIF(IS_NULLABLE = 'YES', ', null', ', not null')) As 'ColumnType' FROM INFORMATION_SCHEMA.COLUMNS WHERE -- ... ORDER BY 'TableName', 'ColumnName'
그것은 완벽 하진하지만 대부분의 경우에 작동합니다.
SQL-Server를 사용
-
==============================
21.MS SQL에 대한 또 다른 옵션은 당신이 유형을 원하는 쿼리를 여기에 선택 쿼리를 대체하는 것입니다 :
MS SQL에 대한 또 다른 옵션은 당신이 유형을 원하는 쿼리를 여기에 선택 쿼리를 대체하는 것입니다 :
declare @sql varchar(4000); set @sql = 'select ''hi'' as greeting'; select * from master.sys.dm_exec_describe_first_result_set (@sql, Null, 0);
from https://stackoverflow.com/questions/13405572/sql-statement-to-get-column-type by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL NoSQL의 VS (MySQL의) (CouchDB를) [폐쇄] (0) | 2020.05.30 |
---|---|
[SQL] 저장 프로 시저에 대한 명명 규칙은 무엇인가? [닫은] (0) | 2020.05.30 |
[SQL] 어떻게 다른 테이블에 가입하지 않는 행을 제외하려면? (0) | 2020.05.30 |
[SQL] 오라클의 뷰 및 구체화 된 뷰의 차이점은 무엇입니까? (0) | 2020.05.30 |
[SQL] mysqldump를 가진 특정 테이블을 건너 뛰기 (0) | 2020.05.30 |