随笔分类 - MS SQL Server
摘要:MS SQL Server2012中把一个中文日期时间格式字符串转为日期时间。如:DECLARE@dNVARCHAR(20)=N'2012年08月12日14时36分48秒'SELECTPARSE(@dASDATETIMEUSING'zh-CN')执行结果:
阅读全文
摘要:这个函数是获取一个指定日期所在月份最后一天的日期。可以解决以前为了得到某一个月月份最后一天,而使用DATEADD函数,去加或减来解决。如:DECLARE@dDATE='2012-02-17'SELECTEOMONTH(@d)得到:
阅读全文
摘要:在MS SQL Server 2012中,出现一个函数,就是IIF,它可以替代一些CASE的表达式。如以前的一篇文章:http://www.cnblogs.com/insus/articles/1944849.html如今可以很简单方便解决它:SELECT[a],IIF([b]='y',N'是',N'否')AS[b]FROM[t]
阅读全文
摘要:刚才网友在SKYPE问Insus.NET一个问题,在MS SQL中,怎样找出一个字符串所有数字。Insus.NET使用较简单与平常的方法,就是使用循环的方法,循环字符串中每一个字符,并插入至一个表变量中。然后再SELECT这个表变量,条件中使用了正则表达式来实现。请参考下面完整的SQL语句,还附加上注释。如遇上不明的, 请继续讨论。DECLARE@sNVARCHAR(100)='ADF632sadf8w43rfd8dj2'--宣告一个表变量DECLARE@tTABLE([s]NVARCHAR(2)NULL)--宣告两个变量,一个是循环初始变量,另一个是存储字符长度变量DECLA
阅读全文
摘要:总部要求每一个月,获取一次ERP数据库增长大小。我收到的样版是一张截图,是直接查看数据库文件大小。但Insus.NET想到的是,从下面的SQL语句,就可以查询到数据库大小。因此分享于此。SELECTDB_NAME(database_id)AS[DatabaseName],[Name]AS[LogicalName],[Physical_Name]AS[PhysicalName],((size*8)/1024)AS[Size(MB)],[differential_base_time]AS[DifferentialBaseTime]FROMsys.master_filesWHEREDB_NAME(d
阅读全文
摘要:根据用户需要将Excel做一些分析以及报表等,以下部分,Insus.NET只是抽取程序中一小部分,但它能够在指定的环境中运行起来。运行环境:.NET 4.5 + ASP.NET + C# + SQL Server2012功能:1. 用户可以下载Excel样版文挡。可以学习到ASP.NET如下载文件。2. 选择Excel文件上传。学习到ASP.NET如何上传文件,怎样判断Excel是否为Excel文件,文件将先存入服务器端,然后再存入SQL Server中。3. 打开文件。原本文件是存入SQL Server中,怎样在ASP.NET打开这个文件。4. 数据分析。 程序中是取出存在SQL Serv.
阅读全文
摘要:应网友要求,使用VB.NET写的一个小网站。使用了.NET Framework 4.5,数据库是SQL Server 2012,你可以看到所有SELECT,INSERT,UPDATE and DELETE都是在存储过程实现。Ajax在这个程序中也少不了。网站虽然很简单,但在后台管理与前台显示。后台的默认登录帐号为sa,密码为12345678. 密码当然还可以更改。还可以添加管理员用户。后台有文章目录管理,文章管理,添加,编辑与删除。使用了CuteEditor_for_NET6文本编辑器。如果你在运行这个编辑器,不能使用。只需从official网站重新下载,把cuteeditor.lic覆盖即可
阅读全文
摘要:在Infor Syteline ERP系统中,没有一个很好的管理介面,可以根据forms名,查找到其所归属的安全组。为什么会有这样需求呢?因为在权限管理中,某个安全组包含了哪些forms,或者哪些forms归属于哪个安全组中,为了这个方便管理,Insus.NET写了一段SQL语句:SELECT[GroupId],[GroupName],[GroupDesc],[ObjectName1],[ObjectName2]FROM[dbo].[GroupNames]ASgnRIGHTJOIN[dbo].[AccountAuthorizations]ASaaON(gn.[GroupId]=aa.[Id].
阅读全文
摘要:一个客户的SQL Server,他手动更新表,需要调整字段显示的顺序,但出现了下面提示,防止保存更改需要表重新创建。 解决此问题,打开菜单tools > Opetions...选项窗口:展开至Designers > Table and DatabaseDesigners,可以看到右边的一个选项Prevent saving changes that require table re-creation。把它去选即可。
阅读全文
摘要:问题是这样的。从订阅表中SELECT某一个用户所有订阅的目录,然后可以绑定至前台显示给用户,让用户知道自己有哪些订阅和哪些目录没有订阅。如下表[dbo].[SubScription]:需要SELECT用户ID为15的所有订阅目录。如最终结果:Insus.NET是在SQL Server 2012结合XML的FOR XML PATH()来实现。参考:View Code SELECT[UsersId],[SubscriptionCataLog]=STUFF((SELECT','+CAST([SubscriptionCatalog_nbr]ASNVARCHAR(MAX))FROM[db
阅读全文
摘要:MS SQL Server一个自定义函数[dbo].[udf_ConvertSecondToTime],把秒数转换为时间。传入的值最大为86399,如果大于这个数值,这将会出现异常:The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value.udf_ConvertSecondToTime SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================
阅读全文
摘要:T-SQL自定义函数,它有点像MS SQL Server的REPLICATE函数。它有三个参数,第一个@String是原有字符串,第二@Char参数就将要加入至前置字符串,第三个@Leng参数为前置字符串重复次数。udf_LeftPad SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:Insus.NET--Createdate: 2012-03-24--Description:CharactertoprependontoString--=======
阅读全文
摘要:Insus.NET在前段时间,曾分享过一篇文章的上一篇和下一篇导航是使用了用户控件实现,并拉入文章显示的页面。这样子,显示文章最基本需要去读取三次数据库获取数据,一次是获取文章信息,另两次是在用户控件被使用,是获取前一篇和下一篇的标题和ID。为了改善这个性能的问题,故产生此篇:去除用户控件,直接在读取文章时,把上一篇的ID与标题与下一篇的ID与标题一起获取。这样一次获取,节能60%。可以参考获取文章的存储过程:usp_Article_GetByPrimaryKey SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--======================
阅读全文
摘要:这两天,从微软官方网站的订阅站点下载,并把Microsoft Visual Studio 11 Developer Preview 升级为Visual Studio 11 Beta Ultimate版,以及把SQL Server 2008 R2升级为SQL Server 2012。意味着今后的开发是使用这工具和数据库了。以下内容于2012-03-23 20:46添加:What's New in ASP.NET 4.5 and Visual Studio 11 BetaWhat's New in SQL Server 2012以下内容于2012-06-02 10:04添加:昨天晚
阅读全文
摘要:下面两个自定义函数,一个是获取指定的前一天的日期,另外一个是获取指定日期的后一天日期。开发企业内网软件常用,为了更好的的规范和代码维护,Insus.NET常会把一些重复使用的代码,重构为函数。返回前一天:udf_Yesterday --=============================================--Author:Insus.NET--Createdate: 2012-03-22--Description:指定日期,返回前一天日期--=============================================CREATEFUNCTION[dbo].[u
阅读全文
摘要:判断指定一个日期,是否为今天。 本自定义函数,返回BIT数据类型,如果返回1,说明指定的日期为今天日期,否则不是。自定义函数中,使用了另外一个T-SQL日期比较的函数[dbo].[DateTimeCompare](date1,date2),此函数详细可参考http://www.cnblogs.com/insus/archive/2011/06/24/2089005.htmludf_IsToday --=============================================--Author:Insus.NET--Createdate: 2012-03-22--Descripti
阅读全文
摘要:当浏览文章时,希望在文章下面有一个导航,就是上一篇和下一篇的功能。可从下三张截图看到效果:要SQL查询语句前,就须把上一篇和下一篇的文章ID找出来,下面的SQL语句有些字段已经省略。View Code SELECT[ArticleId],[Subject],(SELECTMAX([ArticleId])FROM[dbo].[Article]ASa1WHEREa1.[ArticleId]<a.[ArticleId])AS[PrevArticleId],(SELECTMIN([ArticleId])FROM[dbo].[Article]ASa1WHEREa1.[ArticleId]>a
阅读全文
摘要:一位网友在Insus.NET下班时问及一个SQL问题,他有如下一些记录:S_NUMBER P_NO UPDATE_TIMEY1202022524 E3465 2012-02-05 16:32:16.000Y1202022524 E0035 2012-01-16 05:38:41.000Y1202022525 E0036 2012-01-17 05:38:41.000Y1202022526 E0037 2012-01-18 05:38:41.000Y1202022527 E0038 2012-01-19 05:38:41.000Y1202022528 E0039 2012-01-20 05:38
阅读全文
摘要:由于不是固定在一台电脑开发,经常需要把数据备份与恢复。或者是帮助客户修改程序,接收到客户备份好的数据,需要在电脑恢复。这样就需要将数据库用户映射到 SQL Server 登录名。如何映射?可使用下面的系统存储过程:EXECUTEsp_change_users_login'update_one','user','login'上面的'update_one'是执行的操作,将当前数据库中指定的 user 链接到现有的 SQL Serverlogin。'user'是指当数据库的用户名。'login' 就你将要
阅读全文
摘要:理解此函数,可以先看它的语法:fn:contains ($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?返回 xs:boolean 类型的值,以指明 $arg1 值是否包含 $arg2 所指定的字符串值。实例演示说明,可以参考前一篇:http://www.cnblogs.com/insus/archive/2012/03/09/2388316.html这篇只能SELECT到与变理值相同的节点。如果我们想SELECT相似值,虽然可以用谓词LIKE,如果这篇:http://www.cnblogs.com/insus/archive/2
阅读全文

浙公网安备 33010602011771号