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

zad*_*zad 32 sql sql-server default

如何使用SQL查询找出表中列的默认值?

通过使用此存储过程:

sp_columns @tablename 
Run Code Online (Sandbox Code Playgroud)

我得到了一些特定表的列的信息,但缺少列的默认值,我怎么能得到它?

Mar*_*ith 60

您可以使用以下内容找到存储的定义(请记住调整列和表名称以找到与您的环境相关的名称!)

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


OMG*_*ies 16

使用:

   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
Run Code Online (Sandbox Code Playgroud)


shA*_*A.t 14

我用这样的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;
Run Code Online (Sandbox Code Playgroud)