首页
我们经常出于某种目的需要使用各种各样的日期格式,当然我们可以使用字符串操作来构造各种日期格式,
/*用convert是明确地转换一数据类型表示到另一个,对于dateadd等等日期函数
的参数不一定是日期格式,只要可以转化即可,对于convert,字符串和日期是
2种不同的格式,这点要注意,我们来看看一个试验:*/
print dateadd(dd,1,@str)
print dateadd(dd,1,@dt)
print convert (varchar(10),@str,120)
print convert (varchar(10),@dt,120)
……
declare temp_cursor CURSOR for
select distinct [month]=convert(varchar(6),dateadd(dd,number,@begintime),112) from master..spt_values where type='p' and number <= datediff(dd,@begintime,@endtime)
open temp_cursor
declare @ym varchar(20)
fetch next from temp_cursor into @ym
while @@fetch_status=0
begin
if @sqltxt!=''
be……
什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合。 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。 一般复杂的存储过程,都会有游标的出现,他的用处主要有: 定位到结果集中的某一行。 对当前位置的数据进行读写。 可以对结果集中的数据单独操作,而不是整行执行相同的操作。 是面向集合的数据库管理系统和面向行的程序设计之间的桥梁。 游标的分类 根据游标检测结果集变化的能力和消耗资源的情况不同,SQL Server支持的API服务器游标分为一下4种: 静态游标: 静态游标的结果集,在游标打开的时候建立在TempDB中,不论你在操作游标的时候,如何操作数据库,游标中的数据集都不会变。 例如你在游标打开的时候,对游……
null值转化为0的方法: 在sqlserver中NULL值转换为0的方法采用ISNULL函数进行转换处理,具体的语法如下所示: ISNULL(check_expression,replacement_value) —参数说明—-
check_expression:
待检查表达式,此处表达式可以为列名,变量名 等。
replacement_value:
当check_expression为NULL时,使用replacement_value表达式替换
注意事项: check_expression和replacement_value必须具有相同的数据类型 ISNULL举例应用 ---当列名为NULL值时,使用0进行替换
s……
select DATEDIFF(day,'2009-08-01 00:00:00','2009-08-01 23:59:59') 显示0就是同一天, 第一个时间小,第二时间大,7表示7天前
select * from 表 a where exists(
select * from (
select 测站bai名du称zhi,max(时间) as FTime from 表 group by 测站名称) x
where x.测站名称=a.测站名称 and a.时间=x.FTime )
select stuff((select ','+ cast(appuserid as nvarchar(50)) from T_appUser_community where communityid=2 for xml path('')),1,1,'')
在使用sql2008时,在修改一张表的结构保存时,提示“您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项”
结果就是,更改后的表结构未能保存。
还好,很快就在网上找到了答案。解决方法如下:
在sql server 2008 “工具”菜单栏下的“选项”菜单,在弹出的对话框中左边的列表中有一个“Designers”,取消“阻止保存要求重新创建表的修改”复选框,点击确认。就可以完成表结构的修改操作。
在使用MSSql的时候,在多用户的情况下不免要进行并发控制。微软提供了锁机制。
这里锁分为两个部分,一个是锁的范围(行锁、页面锁、表锁),另一个是锁的粒度(共享锁、持有锁等)
在锁定数据的时候要配合锁的范围和粒度。
例如 select * from Table with(RowLock,XLock) where ID=1 就可以将Table的一行设置独占锁。一般情况下在事务的开始可以先使用Update操作一个表的行进行加独占锁。
还可以使用应用程序锁来防止多客户端同时执行某个操作。
创建应用程序锁 exec SP_GetAppLock @Resource=‘锁名',@LockMode='Exclusive',@LockOwner='Session',……
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能……