国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

觸發器和存儲過程

2019-11-15 02:29:32
字體:
來源:轉載
供稿:網友

觸發器和存儲過程

觸發器

現有字典表(Dict)

字段說明
Id標示
ItemKey
ItemValue
UpperId上層標示

需求一:當新增一條記錄的時候,若已存在相同鍵的,拒絕插入

//操作步驟:展開相關表,右擊‘觸發器’,新建即可

USE [sqlffwj]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TRIGGER [dbo].[CheckKeyRepeated]   ON  [dbo].[Dict]   for INSERTASif(select COUNT(*) from [Dict], inserted inobj where [Dict].ItemKey = inobj.ItemKey and [Dict].Id != inobj.Id) > 0BEGIN    raiserror('已有相同鍵,不能插入',16,1)    rollback tranEND

需求二:當刪除一條記錄的時候,若有下層記錄,拒絕刪除

USE [sqlffwj]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TRIGGER [dbo].[CheckDependence]   ON  [dbo].[Dict]   for deleteASif(select COUNT(*) from [Dict], deleted delbj where [Dict].UpperId = delbj.Id) > 0BEGIN    raiserror('有下層記錄,不能刪除',16,1)    rollback tranEND

需求三:當刪除一條記錄的時候,若有下層記錄,下層也一起刪除

USE [sqlffwj]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TRIGGER [dbo].[CheckDependence2]   ON  [dbo].[Dict]   AFTER deleteASwhile(select COUNT(*) from [Dict] where UpperId != 0 and UpperId not in (select Id from [Dict])) > 0BEGIN    delete from [Dict]     where UpperId != 0 and UpperId not in (select Id from [Dict])    END

存儲過程

現有用戶表(User)

字段說明
Id標示
Name姓名
Age年齡
DeptId部門標示

部門表(Dept)

字段說明
Id標示
Name名稱

需求一:用存儲過程查詢所有用戶的信息(標示、姓名、年齡、部門名)

//操作步驟:展開數據庫,再展開可編程性,右擊‘存儲過程’,新建即可

SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[GetUsers]ASBEGIN        select [User].Id '標示',[User].Name '姓名', [User].Age '年齡', [Dept].Name '部門' from [User] left join [Dept] on [User].DeptId = [Dept].IdENDGO
/* 調用 */exec GetUsers

需求二:用存儲過程查詢指定部門的用戶信息(標示、姓名、年齡、部門名)

SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[GetUsersByDept](    @deptid int /* 部門標示 */    )ASBEGIN        select [User].Id '標示',[User].Name '姓名', [User].Age '年齡', [Dept].Name '部門'    from [User] left join [Dept] on [User].DeptId = [Dept].Id    where [Dept].Id = @deptidENDGO
/* 調用 */exec GetUsersByDept 2

需求三:在項目中用ADO調用存儲過程'GetUsersByDept'

1、環境:VS2010+sql2008

2、新建edmx文件,引用兩張表和存儲過程

3、切換到‘模型瀏覽器’,‘添加函數導入’

4、在‘添加函數導入’面板,點擊‘獲取列信息’,獲取到列信息后再點擊‘創建新的復雜類型’,確定后就可以通過Func調用存儲過程了

5、調用代碼Demo

            using (var context = new SqltestEntities())             {                var result = context.GetUsersByDept(2);                throw new Exception(result.Count().ToString());            }

2013

為什么混的這么差

為什么此刻好難受

但為什么依然如此淡定

不是不曾想過改變,只是不能做到無拘無礙,就選擇了保持現狀

希望2014能有些改變

暫時只能用一句 “ 我就是我,是顏色不一樣的煙火 ” 來安慰自己了


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 酒泉市| 高要市| 罗山县| 建水县| 泌阳县| 卓资县| 余姚市| 黎平县| 博乐市| 盘锦市| 远安县| 塔河县| 津市市| 平利县| 安阳县| 鱼台县| 定西市| 安西县| 巴林右旗| 三明市| 鄢陵县| 贵港市| 永济市| 林甸县| 娄烦县| 车致| 平遥县| 辽阳市| 武城县| 高青县| 金昌市| 大同县| 义乌市| 灯塔市| 井陉县| 苗栗县| 集安市| 南丹县| 台前县| 林周县| 彭山县|