日度归档:2018年12月5日

mssql sqlserver sys.identity_columns系统视图简介说明


摘要:
下文将详细讲述 sys.identity_columns系统视图的相关说明,如下所示:
实验环境:sql server 2008 R2



sys.identity_columns 功能说明

获取当前数据库下的所有标识列的信息,每条标识列在此表中会存在一行记录。

 
    select * from sys.identity_columns  

sys.identity_columns 返回列说明:

列名

数据类型

备注
从sys.columns表中左连接产生的多列
seed_value

sql_variant

标识列的种子值
increment_value

sql_variant

标识列的增量值
last_value

sql_variant

标识列生成的最后一个值
is_not_for_replication

bit

标识列声明为 NOT FOR REPLICATION。
is_computed

bit

标识列是否为一个计算列
is_sparse

bit

1 = 列为稀疏列
is_column_set

bit

1 = 列为列集

mssql sqlserver sys.foreign_keys 系统表简介说明


摘要:
下文将通过示例讲述”sys.foreign_keys”系统表的功能,如下所示:
实验环境:sql server 2008 R2



sys.foreign_keys 功能说明

sys.foreign_keys 系统表存储系统中的外键对象,每个外键在此系统表中会存储一行
—————————————————————————

    select * from sys.foreign_keys

sys.foreign_keys 返回列说明:

列名称

数据类型

备注说明
name

sysname

外键名称
object_id

int

外键对象标识列
principal_id

int

一般存储所有者相关信息,在外键中,存储null
schema_id

int

对象架构Id
parent_object_id

int

对象所属父级对象Id
type

char(2)

对象类型,此处为F
type_desc

nvarchar(60)

对象类型说明
create_date

datetime

外键对象的创建日期
modify_date

datetime

外键对象的修改日期
is_ms_shipped

bit

对象是否由内部sql server组件创建
is_published

bit

对象是否为发布对象

is_schema_published

bit

是否为发布对象的架构
referenced_object_id

int

所属对象的ID,通常为表对象Id
key_index_id

int

对象内键索引Id
is_disabled

bit

外键是否禁用
1 启用
0 禁用

is_not_for_replication

bit

FOREIGN KEY 约束通过 NOT FOR REPLICATION 选项创建。
is_not_trusted

bit

系统是否验证此外键
delete_referential_action

tinyint

执行删除时为此 FOREIGN KEY 声明的引用操作。
0:不执行任何操作
1:级联
2:设置 Null
3:设置默认值
delete_referential_action_desc

nvarchar(60)

执行删除时为此 FOREIGN KEY 声明的引用操作的说明:
NO_ACTION
CASCADE
SET_NULL
SET_DEFAULT
update_referential_action

tinyint

执行更新时为此 FOREIGN KEY 声明的引用操作。
0:不执行任何操作
1:级联
2:设置空值
3:设置默认值
update_referential_action_desc

nvarchar(60)

执行更新时为此 FOREIGN KEY 声明的引用操作的说明:
NO_ACTION
CASCADE
SET_NULL
SET_DEFAULT
is_system_named

bit

1:外键名称由系统自动生成
0:外键名称由用户指定

mssql sqlserver 禁用和启用外键约束的方法分享


摘要:
下文通过举例的方式分享,禁用和启用指定外键的方法,如下所示:
实验环境:sqlserver 2008 R2


     
---禁用和启用指定表名的所有 约束(包含外键约束)
alter table [tableName]  NOCHECK constraint all; ---禁用所有约束 
alter table [tableName]  CHECK constraint all;   ---启用所有约束
   
---使用sql脚本生成指定外键约束(禁用和启用脚本)
select 'ALTER TABLE ' + b.name + ' NOCHECK CONSTRAINT ' + a.name +';'  from sysobjects a ,sysobjects b where a.xtype ='f' 
and a.parent_obj = b.id and b.name='tableName'; 
---生成禁用脚本


select 'ALTER TABLE ' + b.name + ' CHECK CONSTRAINT ' + a.name +';'  from sysobjects a ,sysobjects b where a.xtype ='f' 
and a.parent_obj = b.id and b.name='tableName'; 
---生成启用脚本

--查看当前数据库下的所有外键及外键状态
select name  as [外键名称],
 case  is_disabled 
 when 1 then '启用'
 else '禁用'
 end as [外键状态]
   from sys.foreign_keys