日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL Server Note [vaynexiao]

發布時間:2024/1/8 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server Note [vaynexiao] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
declare @ln varchar(300),@mn varchar(200),@fn varchar(200) declare @ln_n int,@mn_n int,@fn_n int set @ln='李王張劉陳楊黃趙周吳徐孫朱馬胡郭林何高梁鄭羅宋謝唐韓曹許鄧蕭馮曾程蔡彭潘袁于崔任陸廖姚方金邱夏譚韋賈鄒石熊孟秦閻薛侯雷白龍段郝孔邵康賀嚴尹錢施牛' set @mn='德紹宗邦裕傅家積善昌世貽維孝友繼緒定呈祥大正啟仕執必定仲元魁家生先澤遠永盛在人為任伐風樹秀文逸昌文涵亮涵浩波浩博初浩歌浩廣昊景哲永昌子昂智宇智然' set @fn='123456789' set @ln_n=len(@ln) set @mn_n=len(@mn) set @fn_n=len(@fn) declare @tmp varchar(1000),@i int set @i=100 while @i<100000001 beginset @tmp = cast(substring(@ln, cast(rand() * @ln_n as int), 1) as varchar)set @tmp = @tmp + cast(substring(@mn,cast(rand() * @mn_n as int), 1) as varchar)set @tmp = @tmp + cast(substring(@fn,cast(rand() * @fn_n as int), 1) as varchar)insert into student2 (sno, sname, pwd, salary) values ('2005' + @i, @tmp, '123456', '5000.00')set @i = @i + 1 endcreate table student2 (sno int ,sname varchar(200),pwd varchar(200),salary float(2) )select count(1) from student2drop table student2 create/alter proc/procedure myproc @id int, @name varchar(200), @content varchar(200) as begindeclare @birthday datetimeset @birthday='2019-12-12'delete from report_day;insert into report_day(id,name,content,create_date,birthday)values(@id,@name,@content,getdate(),@birthday);select * from report_day endexec myproc 1, 'kobe', 'mvpppppp'execute/exec exec pro_real_holiday '2019-02-01','2019-02-28','01' --不指定參數名稱,則按照該存儲過程聲明時參數的順序來接收參數, exec pro_real_holiday @date_end='2019-02-28',@org_code='01',@date_start='2019-02-01' --此時可以打亂聲明順序,它自動根據名字來對應接收參數exec/execute proc_name drop proc_name# 舉例 ALTER PROCEDURE [dbo].[pro_copy_kaoqin_his_oneday] AS BEGIN--聲明需要的變量 @date 當天日期declare @date varchar(50) set @Date = CONVERT(varchar(100),getdate()-1,23) --只針對執行調度時的前一天,調度時間為凌晨--第1大步:考勤明細表 加工至 考勤表, 且關聯考勤班次,算出遲到、早退時間if( 0 = (select day_type from oams_attr_calendar where date_time=@Date) )BEGINinsert into oams_att_kaoqin (username)select username from uend--第2大步:給“應打卡且一整天沒打卡的人”插入該日期的空記錄--3.1 聲明一個游標 保存所有“應打卡且一整天沒打卡的人”的usernamedeclare @username varchar(50) declare user_cur cursor for select * from pcmc_user open user_cur fetch next from user_cur into @username --獲取當前結果集中的字段usernamewhile @@fetch_status=0 begininsert into oams_att_kaoqin values(@username,@date,@date,null,null,null,null)fetch next from user_cur into @username --獲取當前結果集中的字段usernameendclose user_cur deallocate user_cur END--全勤表 簡化語法案例 create PROCEDURE [dbo].[pro_sheet_month_hz] @sheet_type VARCHAR(20), @date_start VARCHAR(20), @date_end VARCHAR(20), @org_code VARCHAR(20) --exec [pro_sheet_month_hz] @date_start='2019-02-01',@date_end='2019-02-28',@org_code='01' AS BEGIN--聲明需要的變量 @date 當天日期 declare @date varchar(50) set @Date = CONVERT(varchar(100),getdate()-1,23) --只針對執行調度時的前一天,調度時間為凌晨--第一大步:移植考勤歷史明細 至 考勤明細表 insert into kaoqin_checkinout_his_copy select right('00000'+u.BADGENUMBER,5) as BADGENUMBER, c.CHECKTIME, c.Memoinfo, c.sn from [10.22.50.232].[ZKT_DB].dbo.Checkinout c left join [10.22.50.232].[ZKT_DB].dbo.USERINFO u on u.userid=c.userid----日常加班天數create table #richang_temp(deptid varchar(50) NULL ,dname varchar(50) NULL)insert into #richang_tempselect z.deptid, sum(z.overtime) min, sum(z.overtime)/210 dayfrom oams_att_kaoqinwhere z.kq_bdate between @date_start and @date_end----請休假天數create table #jia_temp(deptid varchar(50) NULL)insert into #jia_temp select --所有臨時表進行關聯查詢 select *from #richang_temp rtleft join #jia_temp jia on jia.deptid=d.deptid--把所有臨時表關聯起來查詢if(@sheet_type is not null and @sheet_type='tech_day')beginselect * from pcmc_user pendELSE if(@sheet_type is not null and @sheet_type='zhineng')BEGINselect * from pcmc_user pendelsebegin select * from pcmc_user pendprint '第一大步:移植考勤歷史明細 至 考勤明細表'--第四大步:給“應打卡且一整天沒打卡的人”插入該日期的空記錄 --3.1 聲明一個游標 保存所有“應打卡且一整天沒打卡的人”的username declare @username varchar(50) declare user_cur cursor for select a.username from ( --所有需要打卡的人 select usernamefrom pcmc_user pleft join attend_type_shift t on t.attend_shift_code=p.attend_shiftwhere t.attend_time is not null and p.disable='0') as aleft join ( --當天所有打過卡的人select p.username as busernamefrom oams_att_kaoqin kleft join pcmc_user p on p.username = k.usernamewhere CONVERT(varchar(100),kq_bdate,23) =@Date ) as b on a.username = b.busernamewhere b.busername is null open user_cur fetch next from user_cur into @username --獲取當前結果集中的字段username while @@fetch_status=0 begin insert into oams_att_kaoqin values(@username,@date,@date,null,null,null,null) print @username fetch next from user_cur into @username --獲取當前結果集中的字段username end close user_cur deallocate user_curDROP TABLE #richang_tempDROP TABLE #jia_tempEND

總結

以上是生活随笔為你收集整理的SQL Server Note [vaynexiao]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。