解读在SQL Server中处理空值时涉及的三个问题(2)_Mssql数据库教程
推荐:如何使用 SQL Server 数据库嵌套子查询很多SQL Server程序员对子查询(subqueries)的使用感到困惑,尤其对于嵌套子查询(即子查询中包含一个子查询)。现在,就让我们追本溯源地探究这个问题。 有两种子查询类型:标准和相关。标准子查询执行一次,结果反馈给父查询。相关子查询每行执行一次,由
以下代码则创建子表,并在引用父表的列中插入一个空值。
以下为引用的内容: CREATE TABLE Child (pkey1 INT IDENTITYCONSTRAINT pkChild PRIMARY KEY,Parentpkey1 INT NULLCONSTRAINT fkChildParent FOREIGN KEYREFERENCES Parent(pkey1),col1 INT NULL) GOINSERT Child (Parentpkey1, col1) VALUES (null,2)GO |
但在以下代码中,要同时从父表和子表选择值。虽然父表不包含空值,但在子表引用了父表的那个列中,将允许一个空值。
然后丢弃所有表,清除这个演示所用的数据库对象。
SELECT * FROM ChildGOSELECT * FROM ParentGODROP TABLE Child, ParentGO
在可以为空的外键中检查数据的有效性
如果由两个列共同组成主键,而且一个子表将主键作为可为空值的外键来继承,就可能得到错误的数据。可在一个外键列中插入有效的值,但在另一个外键列中插入空值。然后,可添加一个数据表检查约束,在可为空的外键中检查数据的有效性。
任何多列外键都可能遇到同样的问题。所以,你需要添加一个检查约束来检测异常。最初,检查约束将检查构成外键的所有列中可能为空的值。检查约束还要检查这些列中不能为空的值。如两个检查都通过,问题就解决了。
以下示范脚本展示了这样的一个异常,以及如何用检查约束来纠正它。
分享:如何在SQL Server中去除表中不可见字符以下的实例为去除指定表中数据类型是VARCHAR,CHAR,NVARCHAR的字段值中的不可见字符。 注释:此处只去掉前后的不可见字符,不包括中间的字符,而且没有区分中文。 在使用前需要指定对应要修改的表名,并且需要在对应数据库下执行; SET NOCOUNT ON DECLARE @T
- sql 语句练习与答案
- 深入C++ string.find()函数的用法总结
- SQL Server中删除重复数据的几个方法
- sql删除重复数据的详细方法
- SQL SERVER 2000安装教程图文详解
- 使用sql server management studio 2008 无法查看数据库,提示 无法为该请求检索数据 错误916解决方法
- SQLServer日志清空语句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸载方法(其他版本类似)
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表
- SQL Server 2008 清空删除日志文件(瞬间日志变几M)
- Win7系统安装MySQL5.5.21图解教程
- 将DataTable作为存储过程参数的用法实例详解
Mssql数据库教程Rss订阅编程教程搜索
Mssql数据库教程推荐
猜你也喜欢看这些
- 利用Xtrabackup工具备份及恢复(MySQL DBA的必备工具)
- MySQL 5.6 如何更改安全的处理密码探讨
- 解决bash: mysql: command not found 的方法
- 在SQL Server的try...catch语句中获取错误消息代码的的语句
- SQL分组排序去重复的小实例
- MYSQL SET类型字段的SQL操作知识介绍
- 解析mysql中:单表distinct、多表group by查询去除重复记录
- 网页模板MySQL出现Can't create/write to file 'C:\Windows\TEMP\#sql_990_0.MYI解决办法
- MySQL:数据库知识点
- SQL提示Login failed for user#039;sa#039;错误的解决方案
- 相关链接:
- 教程说明:
Mssql数据库教程-解读在SQL Server中处理空值时涉及的三个问题(2)。