简体   繁体   English

sql server:获取列的默认值

[英]sql server : get default value of a column

I execute a select to get the structure of a table. 我执行一个select来获取表的结构。 I want to get info about the columns like its name or if it's null or if it's primary key.. I do something like this 我想得到关于列的信息,如它的名称或它是否为null或它是否是主键..我做这样的事情

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

but for default value i get the id..something like 454545454 but i want to get the value "xxxx". 但对于默认值我得到id..something像454545454但我想得到值“xxxx”。 What is the table to search or what is the function to convert that id to the value. 要搜索的表是什么或将该id转换为值的函数是什么。 Thanks 谢谢

You can do this (done a SELECT * just so you can see all the info available): 你可以这样做(完成一个SELECT *,这样你就可以看到所有可用的信息):

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE....

This includes a "COLUMN_DEFAULT" column in the resultset. 这包括结果集中的“COLUMN_DEFAULT”列。

Use 使用

Select * From INFORMATION_SCHEMA.COLUMNS

there is a column called COLUMN_DEFAULT 有一个名为COLUMN_DEFAULT的列

'bills' is an example table '账单'是一个示例表

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'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM