简体   繁体   English

SQL Server:查找带有查询的列的默认值

[英]SQL Server: Find out default value of a column with a query

How can I find out the default value of a column in a table using a SQL query? 如何使用SQL查询找出表中列的默认值?

By using this stored procedure: 通过使用此存储过程:

sp_columns @tablename 

I get some information on the columns of a particular table but the default value of the columns is missing, How can I get it? 我得到了一些特定表的列的信息,但缺少列的默认值,我怎么能得到它?

You can find the stored definition with the below (remember to adjust the column and table name to find to be ones relevant to your environment!) 您可以使用以下内容找到存储的定义(请记住调整列和表名称以找到与您的环境相关的名称!)

SELECT object_definition(default_object_id) AS definition
FROM   sys.columns
WHERE  name      ='colname'
AND    object_id = object_id('dbo.tablename')

Use: 使用:

   SELECT so.name AS table_name, 
          sc.name AS column_name, 
          sm.text AS default_value
     FROM sys.sysobjects so
     JOIN sys.syscolumns sc ON sc.id = so.id
LEFT JOIN sys.syscomments sm ON sm.id = sc.cdefault
    WHERE so.xtype = 'U' 
      AND so.name = @yourtable
 ORDER BY so.[name], sc.colid

I use INFORMATION_SCHEMA table like this: 我像这样使用INFORMATION_SCHEMA表:

SELECT 
    TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
  TABLE_SCHEMA = @SchemaName 
  AND TABLE_NAME = @TableName
  AND COLUMN_NAME = @ColumnName;

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

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