条件(Condition)是一个逻辑表达式,可以使用SQL Server
支持的任何操作符来编写逻辑表达式,以规定存储过程的命名。

默认约束 default

初始值设置,插入记录时,如果没有

create table 表名(

  id int primary key auto_increment,

  name varchar(20) not null,

  age int not null default 18

  );

 

 

策略的评估模式有4种:按需、按计划、更改时记录和更改时禁止。对于这4种模式,官方给出如下定义:

自增长 auto_increment 

自动编号,一般与主键组合使用。一个表里面只能有一个自增长,默认情况下起始值为1,每次增量为1。

create table 表名(

  id int primary key auto_increment,

  name varchar(20)

  )auto_increment = 100;  # 不加auto_increment=100,起始值是1。

 

澳门微尼斯人手机版 1

2,目标(Against Targets)

非空约束

create table 表名(

  id int not null

  );

  

三,示例2: 强制Table 或Index 必须使用数据压缩策略(Data Compression
Policy)

主键约束 primary key

主键的作用:可以唯一标示一条数据,每张表里只有一个主键。

主键的特性:非空唯一。当表里没有主键时,第一个出现的非空且唯一的列,被当成主键。

creat table 表名(

  id int primary key,

  name varchar(20)

  );

我们针对的不是所有的SP,而是用户自定义的SP,点击 Stored Procedure
前面的下三角,不使用Every,而选择新建条件(new condition)。

外键约束 foreign key

保持数据的一致性,完整性实现一对多关系。外键必须关联到键上面去,一般情况是关联到另一张表的主键

foreign key (本列表的字段名) reference 其他表名(要关联的字段名)

 

澳门微尼斯人手机版 2

唯一约束

create table 表名(

  id int unique key,

  name varchar(20)

  );

 

澳门微尼斯人手机版 3

删除主键约束:

alter table 表名

  drop primary key;

 

点击OK,弹出错误消息,不支持Evaluation Mode “On Change:Prevent”,Object
Set 是指Stored
Procedures的集合,将SP_Name_NotSystemSP这个condition换成
Every,适用于所有的SP。然后点击OK,创建成功。

3,编辑字段

澳门微尼斯人手机版 4

Administer Servers by Using Policy-Based
Management.aspx)

1,策略管理包含的基本组件:策略(Policy)、条件(Condition)、方面(Facet)和目标(Targets):**

Policy 'SP_NamePolicy' has been violated by 'SQLSERVER:\SQL\SQLServerInstanceName\DEFAULT\Databases\db_study\StoredProcedures\dbo.sp_test_policy'.
This transaction will be rolled back.
Policy condition: 'Lower(@Name) LIKE 'usp[_]%''
Policy description: ''
Additional help: '' : ''
Statement: 'CREATE PROCEDURE dbo.sp_test_policy
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements....'.
Msg 3609, Level 16, State 1, Procedure sp_syspolicy_dispatch_event, Line 65
The transaction ended in the trigger. The batch has been aborted.

评估模式共有四种,本例选择On change:prevent,并勾选 Enable复选框。 

从示例1中,我们可以看出,选择相应的Facet非常重要。在table
facet列表中,系统自动创建了HasCompressedPartitions和RowCount属性,属性HasCompressedPartitions表示Table
或 index是否压缩,RowCount属性返回table的数据行数。

澳门微尼斯人手机版 5

四,对单个对象进行策略评估

step4,查看创建的Policy 和condition

当表的数据行数大于1000000,必须进行数据压缩。当对策略进行评估时,如果
@RowCount>1000000 and
@HasCompressedPartitions=true,那么符合策略;如果 @RowCount>1000000
and @HasCompressedPartitions=true 不满足,即@RowCount<=1000000 or
@HasCompressedPartitions=false,那么违反策略。所以,检查条件(Check
Condition)的表达式是 @RowCount<=1000000 or
@HasCompressedPartitions=false。

澳门微尼斯人手机版 6

澳门微尼斯人手机版 7

1,输入策略命名

查看策略评估(Policy Evaluation)的结果,DB中的所有tables
满足检查条件(Check condition):

Facet是Stored Procedure,Facet 属性直接决定了表达式面板(Expression
Grid)的字段(Filed)列表的Items。从Field列表中选择@Name。

澳门微尼斯人手机版 8

3,在SSMS中查看和管理策略

澳门微尼斯人手机版 9

策略管理位于管理目录(Management
Catalog)下,如图:

发表评论

电子邮件地址不会被公开。 必填项已用*标注