随笔分类 -  MS SQL Server

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 29 下一页
摘要:T-SQL使用扩展存储过程[master].[dbo].[xp_regread]读取注册表信息。如下注册表:Insus.NET为了做演示,写了一个用户自定义函数[dbo].[GetServerLocation]():View Code CREATEFUNCTION[dbo].[GetServerLocation]()RETURNSNVARCHAR(4000)ASBEGINDECLARE@LocationNVARCHAR(4000)EXEC[master].[dbo].[xp_regread]'HKEY_CURRENT_USER','ControlPanel\Intern 阅读全文
posted @ 2011-06-30 11:21 Insus.NET 阅读(759) 评论(0) 推荐(1)
摘要:在MS SQL中处理用户输入的数值是否为Integer,为了简化程序代码,可以使用下面函数。IsIntegerCREATEFUNCTION[dbo].[IsInteger](@ValueNVARCHAR(4000))RETURNSNVARCHAR(4000)ASBEGINDECLARE@ResultValueBIT= 1--如果ISNULL把值设为N''SET@Value=ISNULL(LTRIM(@Value),N'')--处理前导N'-'字符串,如果有,把它移除,这样才好做以下的判断。SET@Value=CASEWHENSUBSTRING(@ 阅读全文
posted @ 2011-06-25 16:34 Insus.NET 阅读(733) 评论(0) 推荐(1)
摘要:在SQL开发中,处理双引号(DoubleQuote),为了方便与简化代码,只有创建一个函数,在需要的方调用即可:DoubleQuoteCREATEFUNCTION[dbo].[DoubleQuote](@ValueNVARCHAR(4000))RETURNSNVARCHAR(4000)ASBEGINRETURNREPLACE(@Value,'''','''''')END 阅读全文
posted @ 2011-06-25 14:25 Insus.NET 阅读(554) 评论(0) 推荐(1)
摘要:MS SQL两个日期比较,获取最大或最小的日期的函数。如果你可以使用SQL 日期比较函数http://www.cnblogs.com/insus/archive/2011/06/24/2089005.html去实现。获取最大的日期函数:MaximumDate CREATEFUNCTION[dbo].[MaximumDate](@DT1DATETIME,@DT2DATETIME)RETURNSDATETIMEASBEGINRETURNCASE--有关DateTimeCompare可参考:http://www.cnblogs.com/insus/archive/2011/06/24/2089005 阅读全文
posted @ 2011-06-24 15:53 Insus.NET 阅读(2711) 评论(0) 推荐(1)
摘要:开发SQL过程中,会常常需要去比较两个日期大小。因此Insus.NET写了一个日期比较的函数,方便开发时的使用。DateTimeCompare CREATEFUNCTIONDateTimeCompare(@DT1DATETIME,@DT2DATETIME)RETURNSINTASBEGINRETURNCASEWHEN@DT1>@DT2THEN1WHEN@DT2>@DT1THEN-1ELSE0ENDEND此函数的两个参数DT1和DT2的数据类型为DATETIME,返回值INT,为指示DT1和DT2 的相对值。值类型条件小于零DT1 小于 DT2。零DT1 等于 DT2。大于零DT1 阅读全文
posted @ 2011-06-24 15:22 Insus.NET 阅读(3407) 评论(0) 推荐(1)
摘要:开发ERP时,会使用到下面两个获取最大值或最小值日期的函数。最大日期值:MaximumDateValueCREATEFUNCTION[dbo].[MaximumDateValue]()RETURNSDATETIMEASBEGINRETURNCONVERT(DATETIME,'9999-12-3123:59:59.998',121)END最小日期值:MinimumDateValueCREATEFUNCTION[dbo].[MinimumDateValue]()RETURNSDATETIMEASBEGINRETURNCONVERT(DATETIME,'1753-01-01& 阅读全文
posted @ 2011-06-24 14:01 Insus.NET 阅读(5305) 评论(0) 推荐(1)
摘要:MS SQL Server判断对象是否存在,方法有多种,Insus.NET列举两种,后一种(方法二)也是Insus.NET最常用与较喜欢的,因为它简单。方法一:IFEXISTS(SELECT[object_id]FROMsys.objectsWHEREname='xxx')方法二:IFOBJECT_ID('XXX')ISNOTNULL 阅读全文
posted @ 2011-06-22 09:54 Insus.NET 阅读(346) 评论(0) 推荐(1)
摘要:本篇主要介绍asp.net控件CheckBoxList,会分好几个DEMO来实现。其中会出现几个DLL对象,可从下面地址下载:http://www.cnblogs.com/insus/articles/1654653.htmlhttp://www.cnblogs.com/insus/articles/1622884.html从数据库取出数据绑定至CheckBoxList控件,在取出数据之前,得在SQL数据库准备一些数据,创建表[DevCodes],插入数据与获取数据存储过程usp_DevCodes_GetAll:View Code CREATETABLE[dbo].[DevCodes]([DC 阅读全文
posted @ 2011-06-17 16:42 Insus.NET 阅读(6315) 评论(5) 推荐(1)
摘要:在论坛上看到一个网友需要,需要把字符串"20110601"转为日期。由于使用DateTime.Parse转出来是一个空值。Insus.NET想到的是使用C#的字符串处理函数Insert()在指定位置插入两个"-"字符即可。View Code strings="20110601";s=s.Insert(4,"-");s=s.Insert(7,"-");Response.Write(s);执行结果:其实,如果以这样格式的字符串,在SQL中是很容易转换的。SELECTCAST('2011060 阅读全文
posted @ 2011-06-01 17:00 Insus.NET 阅读(8032) 评论(0) 推荐(1)
摘要:Server Error in '/Website1' Application. Must declare the scalar variable "@Author".Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 阅读全文
posted @ 2011-05-13 16:44 Insus.NET 阅读(2019) 评论(0) 推荐(1)
摘要:在SQL Server较高版本,如SQL 2008新增加了一个日期数据类型DATE,它很容易地帮Insus.NET解决一个问题。专案中需要做每天的报表,即是说要搜索出每天的记录。比如用户输入某一天,搜索出某一天的数据出来,不管搜索日期字段是否为纯日期还是带有时间的。以前使用BETWEEN谓词等。如今做法:DECLARE@DASDATE--搜索日期SELECT*FROM[dbo].[Orders]WHERECAST([OrderDate]ASDATE)=CAST(@DASDATE) 阅读全文
posted @ 2011-04-22 17:15 Insus.NET 阅读(1503) 评论(0) 推荐(1)
摘要:用户需要传入年份,获取该年份2月份的天数。可以写成一个用户自定义函数。View Code CREATEFUNCTION[dbo].[DaysOfFebruary](@YearINT)RETURNSINTASBEGINRETURNCASEWHEN(@Year%4=0AND@Year%100<>0)OR(@Year%400=0)THEN29ELSE28ENDEND代码演示:SELECT[dbo].[DaysOfFebruary](2011)执行结果: 阅读全文
posted @ 2011-04-22 16:14 Insus.NET 阅读(1031) 评论(0) 推荐(1)
摘要:SQL开发过程中,经常开发存储过程,与自定义函数,它们有什么区别呢?下表是存储过程(PROCEDURE)与自定义函数(User-Defined Function)的区别,参考: 存储过程自定义函数返回一个或多值必须返回标量或一个表参数有输入输出仅有输入被谁调用EXECUTESQL语句是否可用TRY-CATCH是否相互调用是否事务是否 阅读全文
posted @ 2011-04-22 13:15 Insus.NET 阅读(402) 评论(0) 推荐(1)
摘要:无法运行一条SQL语句,才发现SQL是标准版的,决定升级它。EXECUTEsys.sp_cdc_enable_dbGOMsg 22988, Level 16, State 1, Procedure sp_cdc_enable_db, Line 12This instance of SQL Server is the Standard Edition (64-bit). Change data capture is only available in the Enterprise, Developer, and Enterprise Evaluation editions.升级步骤,移除原来版本 阅读全文
posted @ 2011-04-20 11:10 Insus.NET 阅读(598) 评论(0) 推荐(1)
摘要:某些情况之下,我们需要做清除表的记录。可以使用TRUNCATE函数实现,并让自动增长的主键ID重新开始。但是如果遇上表与其它表有关联,即是说主键是其它表的外键时,使用这个函数清除表记录,会接收到一条Error的信息:Msg 4712, Level 16, State 1, Line 1Cannot truncate table 'dbo.topic' because it is being referenced by a FOREIGN KEY constraint.我们是否有其它替代方法可以使用呢?答案是肯定的。Insus.NET有写了一个存储过程,即是使用DELETE 和 阅读全文
posted @ 2011-04-19 10:40 Insus.NET 阅读(4525) 评论(0) 推荐(1)
摘要:参考此帖:http://topic.csdn.net/u/20110416/13/1878ce94-6154-43a3-9b23-f5ff8c06f164.html如果您无法打开此链接,也可以下载此论题图http://download.cnblogs.com/insus/Miscellaneous/Insus_Birthdate_Cal_Age.rar。根据出生日期计算出在某个事件日期当时的年龄。因为Insus.NET把它写成一个自定义函数UDF_Age:View Code SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOIFOBJECT_ID('[d 阅读全文
posted @ 2011-04-18 16:35 Insus.NET 阅读(1440) 评论(0) 推荐(1)
摘要:Server Error in '/WebSite1' Application. Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.Description: An unhandled exception occurred during the execution of the current web request. Please rev 阅读全文
posted @ 2011-04-18 13:10 Insus.NET 阅读(1364) 评论(0) 推荐(1)
摘要:相信很多人会使用SQL函数SCOPE_IDENTITY()去获取刚刚插入的主键。下面Insus.NET会使用另外一个方法来实现。两种方法代码都会列出,方便对比与参考。首先创建一个表[tQ]:CREATETABLEtQ(tQ_IdINTIDENTITY(1,1)PRIMARYKEY,tQ_NameNVARCHAR(50))再创建另一个表[SavePrimaryKey],存储取得的主键,为本演示之用,实际情况之下,并非是创建这样一个表,而是取得这个主键之后,做其它处理。CREATETABLESavePrimaryKey(PKINT)插入记录:INSERTINTO[dbo].[tQ]([tQ_Nam 阅读全文
posted @ 2011-04-16 10:13 Insus.NET 阅读(2040) 评论(0) 推荐(2)
摘要:前一段时间,有网友问及中文日期的问题http://www.cnblogs.com/insus/articles/2012048.html,原来最终要求是需要在SQL中处理。刚才整理了一下。把它写成一个SQL函数,需要时调用即可,下面为函数代码,仅供参考:View Code CREATEFUNCTION[dbo].[udf_ConvertToChineseDate](@DateDATETIME)RETURNSNVARCHAR(20)ASBEGIN--定义一个表变量DECLARE@DigitalTABLE([D1][TINYINT]NOTNULL,[D2][nvarchar](2)NOTNULL, 阅读全文
posted @ 2011-04-15 16:14 Insus.NET 阅读(621) 评论(0) 推荐(1)
摘要:在Transact-SQL写存储过程,需要做一个小功能,就是处理小数的问题。如果小数部分等于0,显示整数部分,返之,两部分均需显示。如数据3.0显示为3,如0.6显示为0.6,如2.8显示为2.8解决问题,代码如下:DECLARE@aDECIMAL(18,1)=3.0IF(@a-FLOOR(@a)<>0)PRINT@aELSEPRINTFLOOR(@a) 阅读全文
posted @ 2011-04-13 16:59 Insus.NET 阅读(427) 评论(1) 推荐(2)

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 29 下一页