随笔分类 -  Stored Procedures

上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要:实现一个AuditLog的功能,是B/S结构专案。每个用户可以登录系统,在程序中操作数据(添加,更新和删除)需要实现记录操作跟踪。是谁添加,更新和删除的,这些信息将会插入至AuditLog表中。一般情况之下,在SQL的触发器中,只能取到(SQL验证sa;Windows验证Domain\xxx)。这些用户名,达不到效果,不能真正反映到是谁操作的。下面是让你清楚,怎样实现在SQL触发器或存储过程中获取在程序登录的用户,是在插入,更新或删除的存储过程,把登录程序当前用户传入进去。在存储过程中,再把相关信息存入局部(#)临时表中,这样子,在触发器即可获取了。下面代码示例,以一个[Member]表作例, 阅读全文
posted @ 2011-07-21 13:51 Insus.NET 阅读(2419) 评论(2) 推荐(1) 编辑
摘要:这段时间,需要把一些C#处理的逻辑程序,搬移至SQL的存储过程中去。下面这个例子,就是怎样使用SQL的IN去替换C#的“||”参考代码,cs:View Code boolhub=false;boolstore=false;if(dataRow["Warehouse"].ToString()=="CF3"||dataRow["Warehouse"].ToString()=="CW2"){hub=true;}else{store=true;}这段代码,经Insus.NET移至SQL的存储过程之后,变为:View Cod 阅读全文
posted @ 2011-05-20 13:59 Insus.NET 阅读(480) 评论(0) 推荐(2) 编辑
摘要:SQL开发过程中,经常开发存储过程,与自定义函数,它们有什么区别呢?下表是存储过程(PROCEDURE)与自定义函数(User-Defined Function)的区别,参考: 存储过程自定义函数返回一个或多值必须返回标量或一个表参数有输入输出仅有输入被谁调用EXECUTESQL语句是否可用TRY-CATCH是否相互调用是否事务是否 阅读全文
posted @ 2011-04-22 13:15 Insus.NET 阅读(386) 评论(0) 推荐(1) 编辑
摘要:今天有网友问Insus.NET,他公司有一个小程序,已经被编译为DLL,不知怎样去添加一个小功能。就是需要限制用户上传文件个数。Insus.NET看过他的程序与数据库之后,决定着手在数据库去修改。请看原添加的存储过程:ALTERPROCEDURE[dbo].[usp_UploadFile_Insert](@OldFileName[nvarchar](130),@NewFileName[nvarchar](130),@Author[nvarchar](50))ASINSERTINTO[dbo].[UploadFiles]([OldFileName],[NewFileName],[Author]) 阅读全文
posted @ 2011-04-08 15:35 Insus.NET 阅读(585) 评论(1) 推荐(2) 编辑
摘要:PUR需求在Syteline system 做一份报表,By采购单收货的记录报表。实现时需要从三个表关联[matltran],[poitem] 和[vendaddr]去实现。详细存储过程,参考如下代码:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDURE[dbo].[usp_SyteLine_GetReceivingByPORepo 阅读全文
posted @ 2011-02-22 11:20 Insus.NET 阅读(506) 评论(0) 推荐(2) 编辑
摘要:它不同于独立子查询,必须依赖于它所属的外部查询,不能独立调用。比如,查询出省份或市的省府或市府:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECTprovinceId,CityId,CityName,ZipCodeFROMdbo.CityASc1WHERECityId=(SELECTMIN(c2.CityId)FROMdbo.Cityc2WHEREc2.ProvinceId=c1.ProvinceId)查询结果:provinceId 阅读全文
posted @ 2011-02-21 20:50 Insus.NET 阅读(325) 评论(0) 推荐(2) 编辑
摘要:这个选项是在服务器启用SQL Mail。有两个值,一个是0表示SQL Mail不可用(默认值),另一个为1表示SQL Mail可用。执行下面代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->EXECmaster..xp_sendmail@recipients='test@mailaddress.com',--测试邮件地址@subject='SQLServermailtest',@message='H 阅读全文
posted @ 2011-01-22 15:36 Insus.NET 阅读(440) 评论(1) 推荐(2) 编辑
摘要:一个工件可以从CNC机器取得加工开始时间和结束时间。现在需要计算它的加工时间。数据样版:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT[工件编号],[加工开始时间],[加工结束时间]FROM[dbo].[Machining]结果:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&g 阅读全文
posted @ 2011-01-17 19:31 Insus.NET 阅读(1141) 评论(1) 推荐(2) 编辑
摘要:您的程序,邮箱也可以当作一个唯一值,每人只能注册一次。在让用户更改自己邮箱前,得判断邮箱是否已经被人注册。请参考下面存储过程:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATEPROCEDURE[dbo].[usp_Users_UpdateEmail](@IDtinyint,@Emailnvarchar(150))AS--判断邮箱地址是否存在IFEXISTS(SELECTTOP1*FROM[Users]WHERE[Email]= 阅读全文
posted @ 2011-01-11 12:46 Insus.NET 阅读(823) 评论(1) 推荐(2) 编辑
摘要:用户更改自己的密码,不必在asp.net前先去判断输入的旧密码是否正确,可以一次性把旧密码与新密码传入存储过程,然后在存储过程中去判断。表[Users]结构,可参考:http://www.cnblogs.com/insus/articles/1932670.html存储过程:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATEPROCEDURE[dbo].[usp_Users_UpdatePassword](--存储过程,传入三个 阅读全文
posted @ 2011-01-11 11:18 Insus.NET 阅读(1088) 评论(1) 推荐(2) 编辑
摘要:一般情况之下,只允许用户更改自己的密码与邮箱。下面方法设法让用户更改自己的帐号:首先参考表[Users]:写一个存储过程,存储过程中有一个自定义函数udf_ExclusionAccount,请参考http://www.cnblogs.com/insus/articles/1407256.html:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATEPROCEDURE[dbo].[usp_Users_UpdateAccount](@ 阅读全文
posted @ 2011-01-11 10:57 Insus.NET 阅读(929) 评论(1) 推荐(2) 编辑
摘要:可以首先定义两个时间变量,@BeginTime 和@EndTime数据类型均为Time。执行SQL语句之前,先把系统当前时间赋值给@BeginTime变量,在SQL语句结果时,再把当前系统时间赋值给@EndTime变量。然后使用DATEDIFF函数计算时间差,即可得到SQL执行所需要时间。参考下面演示例子:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--删除计划缓存中的所有元素,通过指定计划句柄或SQL句柄从计划缓存中删除特定计划,或 阅读全文
posted @ 2011-01-07 11:11 Insus.NET 阅读(633) 评论(0) 推荐(2) 编辑
摘要:用户反映,系统操作日志会使用数据库快速增大,情况可参考下图,问题分析,整个系统每个页面,都有写记录用户操作代码,修改或禁用这个代码,看来是不可能的。在原有系统参数表添加一个选项,可以让管理员可选项,“是否启用操作日志”。这样子,就可以更改操作记录的存储过程,代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo].[usp_Op 阅读全文
posted @ 2010-12-29 10:12 Insus.NET 阅读(539) 评论(1) 推荐(2) 编辑
摘要:根据用户自定义需求报表。只有在SQL写好存储过程,然后把结果集显示在GridView中。报表做出来,用户接收了。有把这个效果分享给一些网友,结果网友都会问回一个问题,这个效果如何实现的。现在把一部分存储过程代码帖出来,分享一下,其实很简单。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--如果抽检数大于零和比率大于等于零IF((@RCount>0)AND(ISNULL(@Rate,0)>=0))BEGINBEGIN--定义一 阅读全文
posted @ 2010-12-28 10:32 Insus.NET 阅读(751) 评论(0) 推荐(2) 编辑
摘要:当一个存储过程参数接收一个Array时,我们可以用下面方法来处理,可以很方便实现。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATEPROCEDURE[dbo].[usp_Prod_GetByType](@ArrayIDNVARCHAR(100))AS--处理传入参数DECLARE@ParamsNVARCHAR(100)=REPLACE(@ArrayID,',',''','' 阅读全文
posted @ 2010-12-27 15:35 Insus.NET 阅读(2276) 评论(1) 推荐(3) 编辑
摘要:INSERT EXEC语句可以把存储过程或动态SQL批处理返结果集插入目标数据表中,下面例子是以存储过程返回结果集插入一个表变量中,演示例子,首选创建一个存储过程,这个存储过程需要传入一个参数,是否在职的Member。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFOBJECT_ID('dbo.usp_Member_Job','p')ISNOTNULLDROPPROCEDUREdbo.usp_Membe 阅读全文
posted @ 2010-12-27 13:16 Insus.NET 阅读(1405) 评论(1) 推荐(2) 编辑
摘要:把变量字段动态添加至数据表中,为了演示这个例子,首先创建一个临时表,这个临时表只产生一个IDENTITY字段,Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->BEGINIFOBJECT_ID('[dbo].[#DummyTable]')ISNOTNULLDROPTABLE[dbo].[#DummyTable]CREATETABLE[dbo].[#DummyTable]([ID]INTIDENTITYNOTNULL)END我们宣 阅读全文
posted @ 2010-12-27 10:56 Insus.NET 阅读(1371) 评论(1) 推荐(2) 编辑
摘要:网站搬迁之后,备份数据库的功能出错了,原因是原来数据库与网站同一台服务器,现在是数据库与网站分别在不同服务器,引起在备分时,找不到路径或是没有权限存储。最初版本的存储过程:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo].[usp_Backup_DataBase](@BackupDataBaseNamevarchar(1 阅读全文
posted @ 2010-12-24 18:13 Insus.NET 阅读(4159) 评论(0) 推荐(2) 编辑
摘要:以前实现备份文件管理,有一个删除功能,是使用asp.net来实现删除备份文件。这段时间改用在SQL Server存储过程去实现。您可以参考到这个存储过程完整代码。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[usp_DeleteFile]')ANDtypein(N'P',N&# 阅读全文
posted @ 2010-12-24 17:31 Insus.NET 阅读(465) 评论(0) 推荐(2) 编辑
摘要:SQL Server使用xp_fileexist扩展存储过程,可在判断文件是否在。在创建自定义函数时,因无法使用临时表,所以下例使用了一个表变量。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->DECLARE@OutInfoTABLE([FILE_EXISTS]INTNOTNULL,[FILE_IS_DIRECTORY]INTNOTNULL,[PARENT_DIRECTORY_EXISTS]INTNOTNULL)INSERTINTO@Ou 阅读全文
posted @ 2010-12-24 16:38 Insus.NET 阅读(722) 评论(0) 推荐(2) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 下一页