sql server:获得列的默认值

sql server:获得列的默认值

问题描述:

我执行select来获取表的结构。 我想获得像它的名字列信息,或者如果它为空,或者如果它的主键.. 我做这样的事情sql server:获得列的默认值

....sys.columns c... 
c.precision, 
c.scale, 
c.is_nullable as isnullable, 
c.default_object_id as columndefault, 
c.is_computed as iscomputed, 

但默认值我得到这样的454545454但是id..something我想获得值“xxxx”。什么是要搜索的表格或什么是将该id转换为值的函数。 感谢

你可以这样做(做一个SELECT *,所以您可以看到所有可用的信息):

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE.... 

这包括在结果是“COLUMN_DEFAULT”一栏。

使用

Select * From INFORMATION_SCHEMA.COLUMNS 

有一个叫COLUMN_DEFAULT

'账单' 列是一个示例表

select 
COLUMN_DEFAULT   --default 
,IS_NULLABLE    -- is nullable 
,NUMERIC_PRECISION  --number of digits (binary or decimal depending on radix) 
,NUMERIC_PRECISION_RADIX --decimal places 
,NUMERIC_SCALE   --number of digits to right of decimal point 
,COLUMNPROPERTY(OBJECT_ID('bills'),COLUMN_NAME,'Iscomputed') AS ISCOMPUTED --is computed 
from INFORMATION_SCHEMA.columns where TABLE_name='bills' 

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where TABLE_NAME='bills' and CONSTRAINT_TYPE='PRIMARY KEY' 
+0

这原本说NUMERIC_RADIX是十进制的数地方。这是不正确的。基数是存储值的数字系统的基数(2或10)。 NUMERIC_PRECISION是存储数字的总数(十进制或二进制数,取决于基数),NUMERIC_SCALE是小数点右侧的位数 – 2013-05-02 14:11:20