Sql 获取不带UI的数据类型

Sql 获取不带UI的数据类型,sql,tsql,sql-server-2008,Sql,Tsql,Sql Server 2008,是否可以在不通过UI单击的情况下获取列的数据类型 我希望能够做到 选择SQLGetTypeInfo(TableName.ColumnName) 返回int 在调试参数化查询时,我需要它来声明我自己的变量。我在IBM的网站上发现了SQLGetTypeInfo,它在SSMS 2008中不起作用。如果您不想将其称为查询,可以将其放在过程或函数中: SELECT DATA_TYPE from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'TableNam

是否可以在不通过UI单击的情况下获取列的数据类型

我希望能够做到

选择SQLGetTypeInfo(TableName.ColumnName)

返回
int


在调试参数化查询时,我需要它来声明我自己的变量。我在IBM的网站上发现了
SQLGetTypeInfo
,它在SSMS 2008中不起作用。

如果您不想将其称为查询,可以将其放在过程或函数中:

SELECT DATA_TYPE 
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'TableName'
and COLUMN_NAME = 'ColumnName'

我原以为
columnproperty()
会产生这样的结果,但事实并非如此——除了数据类型之外,它只告诉了关于列的所有信息。我必须说,我有点失望,信息不是更具体
varchar
而不是
varchar(30)
,更糟糕的是
numeric
而不是创建的名为
HVCIDdt:numeric(16,0)
@P.Brian.Mackey的自定义类型:如果需要更多信息,请查看
INFORMATION\u SCHEMA.columns
中的列。数字有
NUMERIC\u PRECISION
,字符字段有
CHARACTER\u MAXIMUM\u LENGTH
。这给了我80%的需要。知道如何查找自定义类型吗(我不知道这是否是正确的术语)?我的意思是前缀“HVCIDdt:”。它被称为
用户定义类型。请尝试
从sys.types中选择*where\u user\u defined=1
,以查看此选项是否包含您需要的信息