① 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
就是這樣