sqlserver 的prepare方法使用问题
1.如果先prepare 后添加参数,这样一部分数据类型可以不用设置其size大小,例如char
2.如果先添加参数再prepare,就必须设置参数的类型,大小,精度才能通过,比如char,varchar,decimal类型,而int,float有固定字节类型的数据类型则可不用设置大小。
3.关于SqlServer的timestamp类型:该类型为SqlServer的时间戳类型,创建表的时候可以没有列名,例如
create table zh(a1 int,timestamp);
在进行插入操作的时候不能插入timestamp列,它会自动插入一个二进制类型8个字节的数据,或者插入default。
插入的值会发现是1900年的时间,这个据MSDN解释是这个时间不同于系统时间,而是为了区分该行数据有没有被更改,该行数据一旦被更改,则timestamp列的时间会自动更新。
在数据库里该列是以binary存储,MSDN解释:可为空的该列相当于binary(8),不可为空的该列相当于varbianry(8)
在取列数据的时候,需要将数据转换成datetime类型
sql语句:利用cast或者convert ,convert(datetime,timestamp_c)
程序里:利用转换方法Convert.ToDateTime
相关文档:
SQLServer和Oracle的常用函数对比
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) valu ......
数学函数
在oracle 中distinct关键字可以显示相同记录只显示一条
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
......
=================分页==========================
/*分页查找数据*/
CREATE PROCEDURE [dbo].[GetRecordSet]
@strSql varchar(8000),--查询sql,如select * from [user]
@PageIndex int,--查询当页号
@PageSize int--每页显示记录
AS
set nocount on
declare @p1 int
declare @current ......
SQLServer2005通过intersect,union,except和三个关键字对应交、并、差三种集合运算。
他们的对应关系可以参考下面图示
相关测试实例如下:
use tempdb
go
if (object_id ('t1' ) is not null ) drop table t1
if (object_id ('t2' ) is not null ) drop table t2
go
cre ......