我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL Server中具有默认值的所有字段的语句有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL Server中具有默认值的所有字段的语句有哪些

本篇文章为大家展示了SQL Server中具有默认值的所有字段的语句有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

专家解答   通过查询任何数据库中的三个系统表,你可以获得每个表的每一个字段的默认值。下面是这个核心查询。它返回分配给当前数据库中每个用户表的默认值。这个查询在SQL 2000和SQL 2005中都是兼容的。    Quote:复制代码 代码如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U'   ORDER BY SO.[name], SC.colid

  sysobjects 为我们提供了表元数据。在这个例子中,我们只对表名称感兴趣。syscolumns 表存储与每个表的各个字段相关联的元数据。在这个例子中,我们只需要字段名称。最后,默认值元数据由syscomments表提供。   对Northwind数据库运行这个查询生成下面的结果(为了简短,省略了一些记录)。注意,因为LEFT JOIN到syscomments表所以它将返回NULL默认值。 现在我在想这个很好的基本查询版本有什么选择。。。   选择1:搜索特别的默认值   通过编辑WHERE条件语句,我们可以在所有的表中查看特别的默认值。    Quote: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U' AND SM.TEXT = '(0)'   ORDER BY SO.[name], SC.colid 选择2:只返回具有默认值字段的信息   修改核心查询的WHERE条件语句来忽略syscomments.text表中的NULL值,这个技巧如下所示:    Quote:复制代码 代码如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U' AND SM.TEXT IS NOT NULL   ORDER BY SO.[name], SC.colid

  但是,将FROM条件从句中的JOIN从一个LEFT JOIN改为一个INNER JOIN会提供优化:    Quote:复制代码 代码如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   INNER JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U'   ORDER BY SO.[name], SC.colid

  其实还有另一个选择,利用SQL 2005中的系统目录视图。前面的查询给我提供了这时所需要的信息,并在SQL 2000和SQL 2005中都可以使用,在SQL2000实例中可以挖掘出与这个默认值(实际上是一个默认约束)关联的额外元数据。通过将这个查询特定在系统目录视图上,我们可以获得在之前的查询中没有显示出来的额外信息。    Quote:复制代码 代码如下: SELECT ST.[name] AS "Table Name", SC.[name] AS "Column Name", SD.definition AS "Default Value", SD.[name] AS "Constraint Name"   FROM sys.tables ST INNER JOIN sys.syscolumns SC ON ST.[object_id] = SC.[id]   INNER JOIN sys.default_constraints SD ON ST.[object_id] = SD.[parent_object_id] AND SC.colid = SD.parent_column_id   ORDER BY ST.[name], SC.colid

所以记住,就因为你被告知没有更好的方法,依靠你作为一个数据库管理员的本能来钻研。你永远不会知道你可能会得到些什么。

上述内容就是SQL Server中具有默认值的所有字段的语句有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL Server中具有默认值的所有字段的语句有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql中drop语句的功能有哪些

在SQL语言中,DROP语句用于删除数据库对象,包括表、索引、视图等。其功能包括:删除表:DROP TABLE语句用于删除数据库中的表。删除数据库:DROP DATABASE语句用于删除整个数据库。删除索引:DROP INDEX语句用于
sql中drop语句的功能有哪些
2024-04-09

SQL中insert语句的作用有哪些

在SQL中,INSERT语句用于向数据库表中插入新的行。它的作用有以下几个:1. 插入新的数据:INSERT语句可以将新的行插入到数据库表中,以增加数据量。2. 插入特定的列:INSERT语句可以选择性地插入特定的列,而不是将所有列都插入。
2023-08-24

sql语句中join的用法有哪些

在SQL中,JOIN用于将两个或多个表中的行基于其关联列的值组合在一起。以下是常见的JOIN类型:1. 内连接(INNER JOIN):返回两个表中匹配的行。只有当在两个表中都存在匹配的行时,才会返回结果。2. 左连接(LEFT JOIN)
2023-08-08

sql中拼接字段的函数有哪些

sql 提供了多种拼接字段的函数,包括 concat()、|| 操作符和 format()。concat() 函数连接多个字符串,|| 操作符也具有相同功能,format() 函数可用于将值转换为特定格式并拼接字符串。这些函数在组合字段创建
sql中拼接字段的函数有哪些
2024-05-09

MySQL中各参数的默认值你认为有哪些是不合理的?

2、1og_ timestamps默认UTC, 建议SYSTEM;3、time_ zone默认SYSTEM, 建议" +8: 00";4、join_ _buffer_ size默认2K,建议4M;5、sort_ _buffer_ size默认2K,建议4M;6
MySQL中各参数的默认值你认为有哪些是不合理的?
2020-10-12

mysql中创建数据库的sql语句有哪些

创建 mysql 数据库的 sql 语句:create database database_name可选参数:character set charset_name:指定字符集collate collation_name:指定整理规则SQL
mysql中创建数据库的sql语句有哪些
2024-04-05

编程热搜

目录