当初决定自己做个博客网站的时候,曾经考虑网站是使用SQL Server还是MySql数据库。但是SQL Server正式版是要收费的,本着屌丝原则最终退而求其次,使用SQL Server 2014 Express(速成版),好处就是该版本是免费且可用于商业用途,坏处就是很多高级功能都被阉割了。
由于最近安装了windows server 2012操作系统,所以原本2008系统上的数据库和配置都要转移到2012上。之前有写过一篇如何实现SQL SERVER EXPRESS自动备份数据库的文章,由于12系统实现方式和08系统基本上一样,毕竟功能还是那些,只是win2012的系统界面换成Metro UI的风格。
本文简单的描述了如何使用sqlcmd命令来执行带参数的存储过程,其实语法很简单,只要在执行的存储过程后面添加相应的参数名和参数值即可。
本文主要记录了SQL Server Express如何实现自动备份数据库的功能。由于SQL Server Express作为微软发布的免费版本,所以功能上和正式版相比有所缺少。自动备份数据库需要SQL Server Agent服务,但是express版则没有该服务,所以我们只能自己用其他的方法来执行自动备份。
SQL SERVER中常常需要使用到SQL语句获取某条数据的上下文数据,即当前数据的上一条和下一条数据。一般都是根据数据的ID来过滤和排序。本文介绍的是在表结构没有ID的情况下,如何使用ROW_NUMBER SQL函数来获取上一条和下一条数据。
本文介绍SQL语句如何查询获取到当前数据的上一条数据,这里需要使用一些小技巧来实现这个功能。本文会介绍多种情况多种方法来实现。
在使用SQL Service 2005/2008 创建链接服务器时,有出现过:"消息 15429,级别 16,状态 1,过程 sp_addlinkedserver,第 42 行'(null)' 是无效的产品名称。"的问题,从该错误提示上来看,主要是创建链接服务器的时候没有输入产品名称的原因。根据不同的创建方式以下分为两种解法方法,解决方法如下:
使用SQL查询当前数据上一条和下一条数据的原理,从而实现获取当前文章上一篇文章和下一篇文章。
SELECT TOP(1) ID,Title FROM [Article] WHERE ID<@CurrentId ORDER BY ID DESC
SELECT TOP(1) ID,Title FROM [Article] WHERE ID>@CurrentId ORDER BY ID ASC
今天在做项目时,由于业务需求,需要在SQL语句的事务中添加条件判断,不符合条件则跳出事务进行回滚,但是在执行了SQL语句后,系统提示异常错误:COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION。
项目中常常需要获取经过四舍五入后保留两位小数的数值,根据项目需求或者限制,有时候只能在SQL语句中进行四舍五入。以下是经过整理,在SQL Service 2005/2008中 四舍五入并保留两位小数的方法。
Sql Server2008数据库在还原时出现如下错误信息:System.Data.SqlClient.SqlError: 尚未备份数据库<数据库名称>的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。 (Microsoft.SqlServer.Smo)