-
SQLSERVER对加密的存储过程、视图、触发器进行解密(推荐)
加密测试的存储过程IFEXISTS(SELECT1FROMSYSOBJECTSWHERETYPE='P'ANDNAME='P_TEST')DROPPROCEDUREP_TESTGOCREATEPROCEDUREP_TEST(@USERNAMEVARCHAR(20),@MSGVARCHAR(20)OUTPUT)WITHENCRYPTIONASBEGINIF(SELECTCOUNT(1)FROMCustsWHERENAME=@USERNAME)>0SET@MSG='此用户名存在'ELSESET@MSG='此用户名不存在'END解密的存储过程CreatePROCEDUREDecryption(@proceduresysname=NULL)ASSETNOCOUNTONDECLARE@intProcSpacebigint,@tbigint,@maxColIDsmallint,@procNameLengthintselect@maxColID=max(subobjid)FROMsys.sysobjvaluesWHEREobjid=object_id(@procedure)--select@m...
数据库操作教程 2022-09-23 20:40:33 -
简单触发器的使用献给SQL初学者
首先,啰嗦几句废话如下: (1)触发器(trigger)是个特殊的存储过程,它的执行并不需要我们去显式调用,而是由一些事件触发,这有点类似C#中的事件处理机制。当使用UPDATE,INSERT 或DELETE的一种或多种对指定的数据库的相关表进行操作时,会触发触发器...
数据库操作教程 2022-09-23 20:38:55 -
SQLSERVER时间格式大全
具体的网址倒是没保存,可是我这个人习惯把好的代码记起方法保存下来,现在贴出来,希望原作者体谅。复制代码代码如下:---上个月月初第一天selectCONVERT(varchar(12),DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0),112)---上个月月末最后一天selectCONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)),112)--1.显示本月第一天SELECTDATEADD(mm,DATEDIFF(mm,0,getdate()),0)selectconvert(datetime,convert(varchar(8),getdate(),120)+'01',120)--2.显示本月最后一天selectdateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))SELECTdateadd(ms,-3,DA...
数据库操作教程 2022-09-23 20:33:07 -
SQL对时间处理的语句小结
复制代码代码如下:--获取当前时间Selectgetdate()--获取当前年月日YY代表年,MM代表月,DD代表日,hh代表时,ss代表秒/*yearyy1753--9999quarterqq1--4monthmm1--12dayofyeardy1--366daydd1--31weekwk1--53weekdaydw1--7(Sunday--Saturday)hourhh0--23minutemi0--59secondss0--59milisecondms0--999*/--DATEPART与DATENAME实现差不多,都能实现同样效果...
数据库操作教程 2022-09-23 20:32:11 -
sqlserver获取当前日期的最大时间值
那你也许会问及,怎样获取当前系统日期的最大时间值,如yyyy-MM-dd23:59:59.997。我们可以使用DATEADD函数,来实现,以当前日期的午夜时间值加一天,即得到第二天的午夜时间值,然后再减去3秒,即可以获取当前系统日期的最大时间值...
数据库操作教程 2022-09-23 20:29:19 -
sqlserver触发器教程
主类别表名:Navtion_TopSubject主键fTopIDChar(36)次类别表名:Navtion_NodeSubject外键同上内容表名:tText外键同上复制代码代码如下://-------------代码开始--------------------CREATETRIGGER[RemoveTopAndNodeText]ON[dbo].[Navtion_TopSubject]INSTEADOFDELETEAS/*定义触发器使用的变量*/DECLARE@fTopIDChar(36),@fNodeCountInt,@fTextCountInt,@fTopNameVarChar/*把传送的需要删除的fTopID键值赋值给@fTopID变量*//*开始事务*/BEGINTRANRemove_TopSubjectSet@fTopID=(SelectfTopIDFromdeleted)Set@fTopName=(SelectfTopNameFromdeleted)/*保存删除前保存点,防止出错*/SaveTranmy_Save1/*首先判断子类表NodeSubject中是否有所属内容*/...
数据库操作教程 2022-09-23 20:28:04 -
用sql脚本创建sqlserver数据库触发器范例语句
复制代码代码如下:--会员表ifobject_id('userinfo','u')isnotnulldroptableuserinfogocreatetableuserinfo(useridintprimarykey,user_tegralint,levelint)insertintouserinfoselect1,0,0go--会员等级表ifobject_id('userlevel','u')isnotnulldroptableuserlevelgo--插入测试数据createtableuserlevel(levelintprimarykey,mlevel_pointdecimal(10,2))insertintouserlevelselect0,0insertintouserlevelselect1,100insertintouserlevelselect2,200insertintouserlevelselect3,300go--触发器createtriggerTR_userInforonuserinfoforupdateasbeginupdateaseta.level=b...
数据库操作教程 2022-09-23 20:22:31 -
SQLServer触发器创建、删除、修改、查看示例代码
一:触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束...
数据库操作教程 2022-09-23 20:20:55 -
Sqlserver常用日期时间函数
MSSQLServer中文版的预设日期datetime格式是yyyy-mm-ddhh:mm:ss.mmm长短日期格式复制代码代码如下:--短日期格式:yyyy-m-dSELECTREPLACE(CONVERT(varchar(10),getdate(),120),N'-0','-')--长日期格式:yyyy年mm月dd日SELECTSTUFF(STUFF(CONVERT(char(8),getdate(),112),5,0,N'年'),8,0,N'月')+N'日'--短日期格式:yyyy年m月d日SELECTDATENAME(Year,getdate())+N'年'+CAST(DATEPART(Month,getdate())ASvarchar)+N'月'+DATENAME(Day,getdate())+N'日'--完整日期+时间格式:yyyy-mm-ddhh:mi:ss:mmmSELECTCONVERT(char(11),getdate(),120)+CONVERT(char(12),getdate(),114)CONVERT复制代码代码如下:SelectCONVERT(varcha...
数据库操作教程 2022-09-23 20:18:04 -
在SQLServer上查看SQL语句的执行时间的方法
1:下面这种是比较简单的查询方法,通过查询前的时间和查询后的时间差来计算的复制代码代码如下:declare@begin_datedatetimedeclare@end_datedatetimeselect@begin_date=getdate()<这里写上你的语句...>select@end_date=getdate()selectdatediff(ms,@begin_date,@end_date)as'用时/毫秒'2:下面这种方法比较全面,将执行每个语句时采取的步骤作为行集返回,通过层次结构树的形式展示出来复制代码代码如下:setstatisticsprofileonsetstatisticsioonsetstatisticstimeongo<这里写上你的语句...>gosetstatisticsprofileoffsetstatisticsiooffsetstatisticstimeoff有时候我们需要知道一段SQL语句执行的时间有多长。下面是其中一种办法...
数据库操作教程 2022-09-23 20:16:20 -
sqlupdate触发器可获得被update的行的信息
复制代码代码如下:createtriggerTgNameontbforupdateasifupdate(recommend)beginupdatetbsetcommenddate=(getdate())fromtbinnerjoininsertedontb.vlistid=Inserted.vlistidendrecommend表示被更新的字段.关键在于Inserted表触发器语句中使用了两种特殊的表:deleted表和inserted表。Deleted表用于存储DELETE和UPDATE语句所影响的行的复本...
数据库操作教程 2022-09-23 20:15:15 -
sqlserver中datetime字段去除时间的语句
select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') 20040912110608 select CONVERT(varchar(12) , getdate(), 111 ) 2004/09/12 select CONVERT(varchar(12) , getdate(), 112 ) 20040912 select CONVERT(varchar(12) , getdate(), 102 ) 2004.09...
数据库操作教程 2022-09-23 20:15:14