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

分类:编程技术 时间:2024-02-20 15:40 浏览:0 评论:0
0
本文向您展示SQL Server中所有具有默认值的字段的语句是什么。内容简洁易懂。绝对会让你眼前一亮。希望您能从本文的详细介绍中有所收获。

专家解答 通过查询任意数据库中的三个系统表,可以得到每个表中各个字段的默认值。下面是核心查询。它返回分配给当前数据库中每个用户表的默认值。该查询在SQL 2000和SQL 2005中都兼容。 引用:复制代码 代码如下: SELECT SO.NAME AS "表名", SC.NAME AS "列名", SM。 TEXT AS“默认值”来自 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 为我们提供了表元数据。在此示例中,我们只对表名感兴趣。系统列表e 存储与每个表的字段关联的元数据。在此示例中,我们只需要字段名称。最后,默认值元数据由 syscomments 表提供。针对 Northwind 数据库运行此查询会产生以下结果(为简洁起见,省略了一些记录)。请注意,由于 LEFT JOIN 是针对 syscomments 表,因此默认情况下将返回 NULL。现在我想知道这个漂亮的基本查询版本有哪些选项。 。 。选项一:搜索特殊默认值通过编辑WHERE条件语句,我们可以查看所有表中的特殊默认值。引用: SELECT SO.NAME AS "表名", SC.NAME AS "列名", SM.TEXT AS "默认值" 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 值。这个技巧如下: 引用:复制代码 代码如下: SELECT SO.NAME AS "表名", SC.NAME AS "列名", SM.TEXT AS "默认值" FROM dbo.sysobjects SO 内连接 dbo.syscolumns SC ON SO.id = SC.id 左连接 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 将提供优化: 引用:复制代码 代码如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS“默认值”“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

事实上,还有另一种选择,使用 QL 2005 中的 SSystem 目录视图。上一个查询给了我信息我此时需要,并且可以在 SQL 2000 和 SQL 2005 中工作。在 SQL2000 实例中,我可以挖掘与此默认值(实际上是默认约束)关联的附加元数据。通过在系统目录视图上指定此查询,我们可以获得上一个查询中未显示的附加信息。引用:复制代码 代码如下: SELECT ST.[name] AS "表名", SC.[name] AS "列名", SD.definition AS "默认值", SD .[name ] AS “约束名称” 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]和SC。 colid = SD.parent_column_id ​ORDER BY ST.[name], SC.colid

所以记住,仅仅因为你被告知没有更好的方法,就依靠你作为数据库管理员的直觉去深入研究它。你永远不知道你会得到什么。

以上内容是所有带默认值的字段的语句是什么SQL Server 中的 es。你学到了知识或技能了吗?如果您想学习更多技能或者丰富自己的知识库,请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > SQL Server中有哪些语句所有字段都有默认值

用户评论