-
自动清理MSSQLServerTableCollation问题的解决方法
在一个团队项目中,没有约定好Collation,在MSSQLServer中编程就会遇到这样的问题:Cannotresolvethecollationconflictbetween"Latin1_General_CI_AS"and"SQL_Latin1_General_CP1_CI_AS"intheequaltooperation.因为编码问题,不同编码的字符串并不能直接进行比较,这种有两个解决方法,1是在query中指定用某一个collation进行比较,另外一个就是修改column的collationtype来避免这种错误。第二种方法,一个一个column改起来很累,写了个script,除了被当作constraints比如primarykey,foreignkey之外的varchar,char,nvarchar都可以统一修改成一个collation…完整sql代码:复制代码代码如下:declare@CollationNamevarchar(500);set@CollationName='SQL_Latin1_General_CP1_CI_AS'createtable#tmp(sqlS...
数据库操作教程 2022-09-23 17:07:58 -
SQLServer日期函数CAST和CONVERT以及在业务中的使用介绍
最近时间刚从客户端转入后台写服务,对于后台数据库以及服务的书写完全是个小白,所以最近写的肯定没有太多技术含量。首先把遇到的问题摆出来:还是那张错误上报表,字段主要有上报错误ID(ErrorID),上报人(ReportPerson),上报时间(ReportTime)精确到毫秒,现在要做的统计是:(1)统计一定时间内【起止时间精确到毫秒】(beginTime,endTime)每个人每天上报的错误个数(2)统计一定时间内【起止时间到精确到月】(beginTime,endTime)按月统计每个人上报的错误总数...
数据库操作教程 2022-09-23 17:06:21 -
对有insert触发器表取IDENTITY值时发现的问题
问题是这样的:T1表上有一个INSERT的触发器,在插入数据的时候,会自动往T2表里面插一条记录这样当我在T1表上插入新的数据时,取@@IDENTITY的时候,返回的id值是T2表里面的新记录的值赶快查了下msdn,原来@@IDENTITY还有这么多讲究:在一条INSERT、SELECTINTO或大容量复制语句完成后,@@IDENTITY中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则@@IDENTITY返回NULL...
数据库操作教程 2022-09-23 17:01:50 -
向数据库中插入数据并返回当前插入的行数及全局变量@@IDENTITY应用
数据库中有张表User,字段是ID和Name,ID自增。利用存储过程实现插入时返回当前的行数复制代码代码如下:CREATEPROCProc_InsertUser@namenvarchar(100)ASINSERTINTOdbo.User(Name)VALUES(@name)SELECT@@IDENTITYASID利用全局变量@@IDENTITY实现...
数据库操作教程 2022-09-23 17:00:59 -
SQLServerCONVERT函数测试结果
复制代码代码如下:SELECTCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSELECTCONVERT(varchar(100),GETDATE(),1):05/16/06SELECTCONVERT(varchar(100),GETDATE(),2):06.05...
数据库操作教程 2022-09-23 16:58:39 -
SQLserver中用convert函数转换日期格式的方法
SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-ddThh:mm:ss.mmm例如:selectgetdate()整理了一下SQLServer里面可能经常会用到的日期格式转换方法:举例如下:selectCONVERT(varchar,getdate(),120)2004-09-1211:06:08selectreplace(replace(replace(CONVERT(varchar,getdate(),120),'-',''),'',''),':','')20040912110608selectCONVERT(varchar(12),getdate(),111)2004/09/12selectCONVERT(varchar(12),getdate(),112)20040912selectCONVERT(varchar(12),getdate(),102)2004.09.12selectCONVERT(varchar(12),getdate(),101)09/12/2004selectCONVERT(varchar(12),getdate(),103)1...
数据库操作教程 2022-09-23 16:58:06 -
sqlconvert函数使用小结
CONVERT(data_type,expression[,style])convert(varchar(10),字段名,转换格式)说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.语句结果SELECTCONVERT(varchar(100),GETDATE(),0)071520094:06PMSELECTCONVERT(varchar(100),GETDATE(),1)07/15/09SELECTCONVERT(varchar(100),GETDATE(),2)09.07.15SELECTCONVERT(varchar(100),GETDATE(),3)15/07/09SELECTCONVERT(varchar(100),GETDATE(),4)15.07.09SELECTCONVERT(varchar(100),GETDATE(),5)15-07-09SELECTCONVERT(varchar(100),GETDATE(),6)150709SELECTCONVERT(...
数据库操作教程 2022-09-23 16:55:58 -
selectinto和insertintoselect两种表复制语句
第一句:SELECT*INTO[ToTable]FROM[FromTable]第二句:INSERTINTO[ToTable]([fild_One],[fild_Two])SELECT[fild_One],8FROM[FromTable]以上两句都是将[FromTable]的数据插入到[ToTable],但两句又有区别的:第一句(SELECTINTOFROM)要求目标表[ToTable]不存在,因为在插入时会自动创建。第二句(INSERTINTOSELECTFROM)要求目标表[ToTable]存在,由于目标表已经存在,所以我们除了插入源表[FromTable]的字段外,还可以插入常量,如例中的:8...
数据库操作教程 2022-09-23 16:55:15 -
sqlcast,convert,QUOTENAME,exec函数学习记录
语法使用CAST:CAST(expressionASdata_type)使用CONVERT:CONVERT(data_type[(length)],expression[,style])参数expression是任何有效的MicrosoftSQLServer"表达式。有关更多信息,请参见表达式...
数据库操作教程 2022-09-23 16:54:49 -
SQLSERVER中datetime和smalldatetime类型分析说明
datetime和smalldatetime代表日期和一天内的时间的日期和时间数据类型。MicrosoftSQLServer用两个4字节的整数内部存储datetime数据类型的值...
数据库操作教程 2022-09-23 16:53:58 -
mssqlinsertinto和insertintoselect性能比较
使用insertintotable(field,...)values(value,...),insertintotable(field,...)values(value,...)...的情况 使用insertintotable(field,...)select(value,...)unionallselect(value,...)unionallselect(value,...)...的情况我一次插入的数据是:1190条。用insertinto所用的时间在510毫秒上下徘徊,而用insertintoselect所用的时间在16毫秒上下徘徊...
数据库操作教程 2022-09-23 16:52:19