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
相关文档:
21 一个SQLServer的自定义函数中调用一个自定义的存储过程,执行此函数后发出如下提示:“只有函数和扩展存储过程才能从函数内部执行"。
原因:函数只能使用简单的sql语句,逻辑控制语句,复杂一点的存储过程是不能调用的,在函数里也不能使用execute sp_executesql 或者execute 。解决方法把 ......
一。SqlServer自动作业备份
1、打开SQL Server Management Studio
2、启动SQL Server代理
3、点击作业->新建作业
4、"常规"中输入作业的名称
5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句
DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath=replace(@ ......
create function comm_getpy
(
@str nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)
set @PY=''
while len(@str)>0
begin
set @word=left(@str,1)
--如果非汉字字符,返回原字符
& ......
=================分页==========================
/*分页查找数据*/
CREATE PROCEDURE [dbo].[GetRecordSet]
@strSql varchar(8000),--查询sql,如select * from [user]
@PageIndex int,--查询当页号
@PageSize int--每页显示记录
AS
set nocount on
declare @p1 int
declare @current ......
对数据库进行多表操作,如果表与表之间存在依赖,那么显式的使用事务,可以保持对数据库操作的原子性。用Python访问SqlServer数据库,我使用pymssql库。今天在使用这个库的时候,发现一个问题。
问题大概是这样的:
我有两张表,一张主表(ClassInfo),一张从表(Student),Student表通过外键ClassID与ClassI ......