SQL Server:检查列的数据类型

Posted

技术标签:

【中文标题】SQL Server:检查列的数据类型【英文标题】:SQL Server: Checking the datatype of a column 【发布时间】:2012-05-08 08:20:08 【问题描述】:

如何检查表中的列是否具有特定的数据类型?

例如,如何检查SQL Server表中的列是否为数据类型char(11)

【问题讨论】:

【参考方案1】:
select COLUMN_NAME 
from INFORMATION_SCHEMA.COLUMNS
where DATA_TYPE = 'char'
and CHARACTER_MAXIMUM_LENGTH = 11
and TABLE_NAME = 'your_table'

使用syscolumns:

SELECT name FROM SYSCOLUMNS
where length = 11
and xtype = 175 --char type

【讨论】:

感谢您的回答。如果我想使用 SELECT * FROM SYSCOLUMNS 应该如何查询.....【参考方案2】:
select case when DATA_TYPE= 'char' then 'T' else 'F' end,    
case when CHARACTER_MAXIMUM_LENGTH = 11 then 'T' else 'F' end    
from INFORMATION_SCHEMA.COLUMNS     
where COLUMN_NAME = 'MY_COLUMN_NAME'     
and TABLE_NAME = 'MY_TABLE_NAME'

【讨论】:

【参考方案3】:

查询列数据类型的Sql查询

ALTER TABLE table_name MODIFY COLUMN column_name data_type;

【讨论】:

以上是关于SQL Server:检查列的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 SQL Server 中列的数据类型?

更改 SQL Server DB 中列的数据类型时出错 - Java

SQL Server 自动确定来自 VARCHAR(MAX) 列的数据类型

SQL Server 2012 如何将列的数据类型从位更改为日期字段?

SQL server 数据类型 - Date VS Varchar(n)

如何只修改一次sql server ce的列数据类型的长度?