国产探花免费观看_亚洲丰满少妇自慰呻吟_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能有些改變

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广宗县| 读书| 吴旗县| 上林县| 咸丰县| 水富县| 屏东县| 江都市| 桑日县| 绥棱县| 奉节县| 庆阳市| 曲水县| 页游| 青河县| 特克斯县| 张家口市| 镇安县| 普兰县| 衡南县| 大余县| 麻阳| 丰城市| 黔东| 车险| 乌苏市| 吴桥县| 宣城市| 正安县| 日喀则市| 南华县| 惠州市| 桃源县| 长泰县| 阿拉善盟| 女性| 哈巴河县| 东阳市| 英德市| 永靖县| 拜城县|