S E T N U L L 命 令

确定
ATLTER TABLE CREATE TABLE 和 INSERT-SQL 命令如何处理 null 值
语 法
SET NULL ON | OFF
参 数 描 述
O N
指 定 由 ALTER TABLE 和 CREATE TABLE 所 创 建 表 的 所 有 列 都 允 许 null

值
在 列 定 义 中 加 入 NOT NULL 子 句 使 该 列 不 接 受 null 值


另
外 参 数 O N 还 指 定 INSERT - SQL 语 句 把 null 值 加 入 到 INSERT -
SQL VALUE 子 句 中 没 有 包 括 的 列 中 INSERT - SQL 只 将 null 值 插
入 到 允许 null 值 的 列 中
注
意 如 果 增 加 支 持 null. 值 的 栏 的 数 目 则 该 表 的 栏 目 限 制
将 缩 减 到 254-255
之 间

OFF
| 默 认 值 |
指 定 由 |
ALTER TABLE 和 |
CREATE TABLE 所 创 建 表 的 所 有 列 |
|---|---|---|---|
| 都 不 允 许 |
null 值 |
在 列 定 义 时 可 以 在 |
ALTER TABLE 和 CREATE TABLE |

中
加 入 NULL 子 句 使 列 接 受 null 值

另
外 参 数 OFF 还 指 定 INSERT - SQL 语 句 把 空 值 加 入 到 INSERT -
SQL VALUE 子 句 没 有 包 括 的 列 中
说 明
SET
NULL 只影响 ALTER TABLE CREATE TABLE 和 INSERT - SQL 语句是否支

持
null 值 其他命令不受 SET NULL 的影响
SET
NULL 的作用范围是当前数据工作期
示 例


下面的示例说明了
SET NULL 如何影响 null 值 第一个表 employee 在 SET NULL ON 时创建
因此该表的各个字段支持 null 值 用 REPLACE 在 cLastName 字段中

加入
null 值 第二个表 stuff 在 SET NULL OFF 时创建 因此它的各字段不支持

null
值 用 REPLACE 在 cLastName 字段中加入 0 值
CLOSE DATABASES
SET NULL ON && 字段支持 null 值
CREATE TABLE employee (cLastName C(20), ySalary Y(12,2)) APPEND BLANK && 添加一个新的空记录
REPLACE cLastName WITH .NULL. && cLastName 支持 null 值
SET NULL OFF && 字段不支持 null 值
CREATE TABLE stuff (cLastName C(20), ySalary Y(12,2)) APPEND BLANK && 添加一个新的空记录REPLACE cLastName WITH 0 && 不支持 null 值
请 参 阅
ALTER TABLE , CREATE TABLE , INSERT – S Q L , ISNULL ( ) , NVL( ) ,
SET DATASESSION
