① sql如何创建规则
CREATE RULE list_rule
AS
@list IN ('0401', '0402', '0403','0404')
② sql建立规则的查询语句是什么
SQL创建约束请参考下列例句:
1)表和字段已经创建的情况下
ALTERTABLE工资
ADDCONSTRAINT
金额CHECK(基本工资>=0and职务工资>=0and奖金>=0);
2)创建表时同时设置约束
createtable工资(姓名varchar(50)primarykey,基本工资int,
职务工资int,奖金int,
CONSTRAINT金额CHECK(基本工资>=0and职务工资>=0and奖金>=0));
③ SQL创建规则
--创建约束
USE 库名 --引入数据库
ALTER TABLE 表名 --修改表
ADD CONSTRAINT g1 --创建检查约束
check (len(TelephoneNo) = 8) --添加约束条件
--创建规则
create rule g1
as
@TelephoneNo like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
--绑定规则
EXEC sp_bindrule 'g1','表名.TelephoneNo'
其实楼上的就可以~~
④ 在SQL中怎么用语句创建规则啊
再补充一下,你应该先创建规则,然后再SQL语句里面调用他,其实也就是SQL SERVER里面所谓的函数!
⑤ sql serve 中创建规则用什么命令
<br>
<br>CREATE RULE
<br>名称
<br>CREATE RULE — 定义一个新规则
<br>
<br>语法
<br>CREATE RULE name AS ON event
<br> TO object [ WHERE condition ]
<br> DO [ INSTEAD ] [ action | NOTHING ]
<br>输入
<br>name
<br>创建的规则名.
<br>event
<br>事件是 select, update, delete 或 insert 之一.
<br>object
<br>对象是 table 或 table.column.
<br>condition
<br>任何 SQL WHERE 语句.new 或 current 可以取代记录变量出现在任何 SQL 允许记录变量的地方.
<br>action
<br>任何 SQL 语句. new 或 current 可以取代记录变量出现在任何 SQL 允许记录变量的地方.
<br>输出
<br>CREATE
<br>成功创建规则后的返回信息.
<br>
<br>描述
<br>Postgres 规则系统 允许我们在从数据库或表中更新,插入或删除东西时定义一个可选的动作来执行。目前,规则用于实现表视图。
<br>规则的语意是在一个单独的记录正被访问,更新,插入或删除时,将存在一个旧记录(用于检索,更新和删除)和一个新记录(用于更新和追加).如果在 ON 子句里所声明的 event 和在 WHERE 语句里面所声明的 condition 对于旧记录都为真,那么action 部分的规则就被执行.但是,旧记录的各字段值和/或新记录将先用 current.attribute-name 和 new.attribute-name 取代.
<br>
<br>规则 action 部分执行时的命令和事务标识与激活该规则的用户命令相同.
<br>
<br>注意
<br>一个关于 SQL 规则的注意事项是顺序.如果相同的表名或记录变量出现在规则的 event,condition 和 action 部分.它们将会被认为是不同的记录变量.更准确地说,只有 new 和 current 在这些子句中共享记录变量.比如,下面两条规则有相同的语意:
<br>ON UPDATE TO emp.salary WHERE emp.name = "Joe"
<br> DO
<br> UPDATE emp SET ... WHERE ...
<br>ON UPDATE TO emp-1.salary WHERE emp-2.name = "Joe"
<br> DO
<br> UPDATE emp-3 SET ... WHERE ...
<br>每条规则都可以有可选的标记 INSTEAD.没有这个标记,action 将在规则的条件(condition )部分的事件(event )发生时作为用户命令的附加部分执行.否则,动作( action )部分将取代用户命令执行.对于后者,action 可以是关键字 NOTHING.
<br>特别要指出的是重写(rewrite)规则系统既不检测也不执行循环规则.例如,尽管下面两条规则都被Postgres 所接受,检索命令将导致 Postgres 报错,因为该查询循环太多次:
<br>
<br>例 19-1. 循环重写(rewrite)规则样例.
<br>
<br>CREATE RULE bad_rule_combination_1 AS
<br> ON SELECT TO emp
<br> DO INSTEAD
<br> SELECT TO toyemp;
<br>CREATE RULE bad_rule_combination_2 AS
<br> ON SELECT TO toyemp
<br> DO INSTEAD
<br> SELECT TO emp;
<br>下面试图从 EMP 中检索将导致 Postgres产生一个错误,因为查询循环了太多圈.
<br>SELECT * FROM emp;
<br>你必须具有对某个表进行规则定义的权限,这样才能在其上面定义规则.使用 GRANT 和 REVOKE 更改权限.
<br>一条 SQL 规则里的对象不能是一个数组引用和不能有参数。
<br>
<br>除了 "oid" 字段,一个规则里任何地方都不能引用系统表属性。这意味着在规则里任何地方都不能调用实例/记录函数(比如, "foo(emp)" 这里 "emp" 是一个表).
<br>
<br>规则系统将规则文本和查询规划按文本(text)属性存储.这意味着当创建的规则加上各种其内部表达式超过一次存储页面请求的值(8KB)时,规则创建可能失败。
<br>
<br>用法
<br>令 Sam 获得与 Joe 一样的薪水调整:
<br>CREATE RULE example_1 AS
<br> ON UPDATE emp.salary WHERE old.name = "Joe"
<br> DO
<br> UPDATE emp
<br> SET salary = new.salary
<br> WHERE emp.name = "Sam";
<br>当 Joe 获得薪水调整后,事件将为真以及Joe的当前记录和提供的新记录可被执行过程获得.因此,他的新薪水将代入动作部分,随后动作部分被执行.这样Sam的薪水就会和Joe的一样了.
<br>当Bill访问数据库(薪水)时,令 Bill 获得 Joe 薪水的信息.
<br>
<br>CREATE RULE example_2 AS
<br> ON SELECT TO EMP.salary
<br> WHERE old.name = "Bill"
<br> DO INSTEAD
<br> SELECT emp.salary
<br> FROM emp
<br> WHERE emp.name = "Joe";
<br>拒绝 Joe 访问雇员的薪水,当他在鞋部时 (current_user 返回当前用户的名称):
<br>CREATE RULE example_3 AS
<br> ON
<br> SELECT TO emp.salary
<br> WHERE old.dept = "shoe" AND current_user = "Joe"
<br> DO INSTEAD NOTHING;
<br>创建一个玩具部工作的雇员视图.
<br>CREATE toyemp(name = char16, salary = int4);
<br>
<br>CREATE RULE example_4 AS
<br> ON SELECT TO toyemp
<br> DO INSTEAD
<br> SELECT emp.name, emp.salary
<br> FROM emp
<br> WHERE emp.dept = "toy";
<br>All new employees must make 5,000 or less
<br>CREATE RULE example_5 AS
<br> ON INERT TO emp WHERE new.salary > 5000
<br> DO
<br> UPDATE NEWSET SET salary = 5000;
<br>兼容性
<br>SQL92
<br>CREATE RULE 语句是 Postgres 语言的扩展.在 SQL92 里没有 CREATE RULE 语句.
<br>
<br>
⑥ sql sever express2005 怎么创建规则
1 创建规则(1) 用CREATE RULE 命令创建规则CREATE RULE 命令用于在当前数据库中创建规则,其语法如下:CREATE RULE rule_name AS condition_expression其中condition_expression 子句是规则的定义。condition_expression 子句可以是能用于WHERE 条件子句中的任何表达式,它可以包含算术运算符、关系运算符和谓词(如IN、LIKE、 BETWEEN 等)。
注意:condition_expression子句中的表达式必须以字符“@”开头。
(2) 用Enterprise Manager 创建规则在Enterprise Manager 中选择数据库对象“Rules”,单击右键从快捷菜单中选择“NewRule”选项,即会弹出如图9-1 所示的创建规则属性对话框。输入规则名称和表达式之后,单击“确定”按钮,即完成规则的创建。
⑦ sql语句创建一个规则
强烈建议你别再使用rule,这个是已经快被淘汰的语句了!
-- 创建自定义类型
EXEC sp_addtype type_phonenum, 'varchar(12)', 'NULL'
-- 创建自定义规则
create rule r_tel
as
@telphone like '____-_______'
-- 绑定规则到自定义类型
EXEC sp_bindrule 'r_tel', 'type_phonenum'
-- 在表中使用自定义类型
create table stu(
...
tel type_phonenum,
...)
-----------------------------------------------------------
--而这么多步骤,如果在表中启用检查约束,只需要这样:
alter table stu
add constraint chk_phonenum
check (tel like '____-_______')
⑧ SQL怎么创建默认值怎么创建规则
1 alter table 学生 add constraint sex_default default ‘男’ for 性别
2 alter table 学生 add constraint age_rule check (年龄 between 16 and 25)
⑨ 如何用sql语句创建有一定规律的列
alter命令,可以增加字段的,你设定个存储过程,用变量做列明,循环使用alter语句,增加列即可。
alter tablename add fields “A“||x ,x作为变量从0到多少即可。
⑩ 在SQL的企业管理器中怎么创建规则
规则是指的什么 Check 约束吗?
哦 这个问题说明白就很简单了
XBRULE 中就写 [列名]='男' OR [列名]='女'
DJRULE 中就写 [列名] BETWEEN 0 AND 1000
就是这样