分页查询
/*--用存储过程实现的分页程序 显示指定表、视图、查询结果的第X页 对于表中主键或标识列的情况,直接从原表取数查询,其它情况使用临时表的方法 如果视图或查询结果中有主键,不推荐此方法--邹建 2003.09(引用请保留此信息)--*//*--调用示例 exec p_show '地区资料' exec p_show '地区资料',5,3,'地区编号,地区名称,助记码','地区编号'--*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_show]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_show]GOCREATE Proc p_show@QueryStr nvar
5144 错误
5144 错误 错误编号: 5144级别:10数据库 '%3!' 中文件 '%1!' 的自动增长在 %5! 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。 -- 错误说明 这个问题说明你的处理要求数据库立即分配 xx MB 的存储空间用于满足你的处理需求,但数据库在 xx 毫秒无法完成这个分配. -- 解决的办法: 1. 不要使用自动收缩, 自动收缩会定期收容数据文件的空闲空间,则处理需要的时候却要扩大数据文件,这两者相反的处理,是冲突的ALTER DATABASE MyDataBase SET AUTO_SHRINK OFF2. 如果你不进行事务日志备份, 也不需要利用事
在Text字段尾部追加数据
问题描述: 表 tt 含字段 name1 text 类型 name2 varchar类型 (值可能为 null),现要将 name2的值添加到 name1里边。--示例数据create table tb(name1 text,name2 varchar(20)) insert tb select 'aa','dd' union all select 'bb','cc' go --处理 declare @p binary(16),@name2 varchar(200) declare tb cursor local for select textptr(name1),name2 from tb open tb fetch tb into @p,@name2 while @@fetch_status=0 begin UPDATETEXT tb.name1 @p null 0 @name2 fetch tb into @p,@name2 end close tb deallocate tb sele
逐记录导出text/ntext字段值为文本文件
/*--原帖地址:http://community.csdn.net/Expert/topic/3851/3851741.xml?temp=.4726831--*/--测试数据create table tb(id varchar(50) primary key,detail text)insert tb select 'aaa','11111'union all select 'bbb','43424'union all select 'ccc','324234'/*--处理要求 把上述表中的detail字段导出为文本文件,要求每条记录一个文件,文件名为id+.txt 即上述表中的数据要求导出为 aaa.txt,bbb.txt,ccc.txt--*/go--处理的存储过程create proc p_export@path nvarchar(1000) --导出的文本文件保存的目录asdeclare @s nvarchar(4000)if i
模拟字符串处理函数 stuff 处理 Ntext 字段
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_stuff]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_stuff]GO/*--Ntext字段处理 模拟字符串处理函数 stuff 完成表中 ntext 字段的 stuff 处理 注意,表中需要有列名为:id 的主键(或标识字段),数据类型为int 如果没有这个主键字段,或者是其他类型,则对应的需要修改存储过程--邹建 2004.07(引用请保留此信息)--*//*--调用示例 --测试数据 create table tb(id int identity(1,1),content ntext) insert tb select 'a;sd' union all sele
ntext搜索关键字
/*--ntext搜索 按 tb 表中的 keyword 在 ta 中查找 content 列出每个 keyword 在 content 中的具体位置--邹建 2004.07(引用请保留此信息)--*/--测试数据create table ta(id int identity(1,1),content ntext)insert ta select '我是中国人我是中国人'union all select '中国人民爱中国 中国人民爱中国 中国人民爱中国 中国人民爱中国'create table tb(keyword nvarchar(100))insert tb select '中'union all select '中国'go/*=================处理========================*/if exists (select * from dbo.sysobjects where id = object
Ntext字段拆分处理
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_split]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_split]GO/*--Ntext字段拆分处理 按指定的分隔符,将 ntext 字段拆分成多条记录 注意:处理过程固定以名为id的int型字段为主键 如果不满足这个条件,则要对应的修改存储过程--邹建 2004.07(引用请保留此信息)--*//*--调用示例 --测试数据 create table tb(id int identity(1,1),content ntext) insert tb select '001,002' union all select '001,002,003,004,005,006,007,008,009,01
数据库中存储与读取文件
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_binaryIO]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_binaryIO]GO/*--bcp 实现二进制文件的导入导出 支持image,text,ntext字段的导入/导出 image适合于二进制文件,包括:Word文档,Excel文档,图片,音乐等 text,ntext适合于文本数据文件 注意:导入不会新增记录,所以导入前要对表进行初始化,即插入记录 导入时,将覆盖满足条件的所有行 导出时,将把所有满足条件的行导出到指定文件中 此存储过程仅用bcp实现--邹建 2003.08(引用请保
数据库中存取文件
'*************************************************************************'**'** 使用 ADODB.Stream 保存/读取文件到数据库'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本'**'** ----- 数据库连接字符串模板 ---------------------------------------'** ACCESS数据库'** iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _'** ";Data Source=数据库名"'**'** SQL数据库'** iConcStr = "Provider=SQLOLEDB.1;Persist Security Info=True;" &a
得到对象脚本
/* 在查询分析器中调用sqldmo生成脚本--存储过程邹建 2003.07(引用请保留此信息)--*//*--调用实例 declare @str varchar(8000) exec sp_getscript 'zj','','','xzkh_sa','地区资料',@str output print @str*/if exists(select 1 from sysobjects where id=object_id('sp_getscript') and objectproperty(id,'IsProcedure')=1) drop procedure sp_getscriptgocreate procedure sp_getscript @servername varchar(50) --服务器名 ,@userid varchar(50) --用户名,如果为nt验证方式,则为空 ,@password varchar(50) --密码 ,@d
将表/查询存储为标准的XML文件
/*--存为XML 将表/查询存储为标准的XML文件--邹建 2003.12(引用请保留此信息)--*//*--调用示例 --用SQL用winows身份验证的情况 exec p_savexml @sql='地区资料',@fname='c:地区资料.xml' --用指定的用户 exec p_savexml @sql='地区资料',@fname='c:地区资料.xml',@userid='sa'--*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_savexml]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_savexml]GOcreate proc p_savexml@sql varchar(8000), --要保存的表/视图/SQL查询语句@fname
利用SQL移动硬盘文件
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_movefile]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_movefile]GO/*--移动服务器上的文件 不借助 xp_cmdshell ,因为这个在大多数时候都被禁用了--邹建 2004.08(引用请保留此信息)--*//*--调用示例 exec p_movefile 'd:aa.txt','c:'--*/create proc p_movefile@s_file varchar(1000), --源文件@d_file varchar(1000) --目标文件asdeclare @err int,@src varchar(255),@desc varchar(255)declare @obj intexec @err=sp_oacreate 'Sc
用SQL在文本文件中追加数据
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_movefile]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_movefile]GO/*--在文本文件中追加数据 在文本文件中追加数据 如果文件不存在,将创建文件--邹建 2004.08(引用请保留此信息)--*//*--调用示例 exec p_movefile 'c:aa.txt','测试写入'--*/create proc p_movefile@filename varchar(1000),--要操作的文本文件名@text varchar(8000) --要写入的内容asdeclare @err int,@src varchar(255),@desc varchar(255)declare @obj intexec @
复制表结构的通用存储过程
-- Transfer对象的重要属性 -- 1. 属性 属性名 类型 描述--------------------------------- ------------------- --------------------CopyAllDefaults Boolean 所有默认值CopyAllObjects Boolean 所有对象CopyAllRules Boolean 所有规则CopyAllStoredProcedures Boolean 所有存储过程CopyAllTables Boolean 所有表CopyAllTriggers Boolean 所有触发器CopyAllUserDefinedDatatyp
master 数据库还原新问题
-- 1. 版本问题 问题描述:在新服务器上还原老服务器的 master 数据库:RESTORE DATABASE MASTER FROM DISK='C:TMPSQLSYS20050516.BAK' WITH FILE=1出现以下错误:服务器: 消息 3168,级别 16,状态 1,行 1无法还原设备 C:TMPSQLSYS20050516.BAK 上的系统数据库备份,因为创建该数据库的服务器版本(134218488)与此服务器的版本(134217922)不同。服务器: 消息 3013,级别 16,状态 1,行 1RESTORE DATABASE 操作异常终止。 问题原因:必须保证新服务器的版本和要还原的 master 数据库的版本完全一致,包括补丁的版本 -- 2. 系统数据库
无组件实现文件上传/下载
==================================================================--'' 用ASP实现无组件上传/下载文件'' 功能简介 ' 将上传的文件数据保存到数据库中,可以处理表单中的多个上传文件的情况' 适用于各种数据库,使用ADO的方法连接数据库' 本示例中使用的是ACCESS数据库:zj.mdb' 表:tb_img(id int(自增列),path text(255) 保存上传文件的目录' ,fname text(250) 保存上传的文件名,type test(250) 保存上传文件的类型' ,img ole对象 保存上传的文件内容'' '=================================================================='==
用ASP实现在线压缩与解压缩
一、问题的提出 随着互连网的发展,网站的数量以惊人的数字增加。网站的作用除了给广大网友们提供信息资讯服务外,还应该成为网友们上传与下载文件的场所。在上传与下载文件的过程中,传输时间是关键,这就要求有较快的传输速度。在传输速度固定不变或是上下变动不大的情况下,尽量减小传输文件的体积,是一个可行的办法:上传文件的时候,先将要上传的文件用WINRAR压缩,上传成功后在网站内通过程序实现解压缩;下载文件的时候,先将要下载的文件在网站内通过程序实现压缩然后再下载。本文就针对该问题的解决进行探讨。二、方法与说明
【交流】SQL 2005溢用之:分拆列值
问题描述:有表tb, 如下:id values----------- -----------1 aa,bb2 aaa,bbb,ccc 欲按,分拆values列, 分拆后结果如下:id value----------- --------1 aa1 bb2 aaa2 bbb2 ccc 1. 旧的解决方法SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns bSELECT A.id, SUBSTRING(A.[values], B.id, CHARINDEX(',', A.[values] + ',', B.id) - B.id)FROM tb A, # BWHERE SUBSTRING(',' + A.[values], B.id, 1)
【交流】SQL 2005溢用之:合并列值
问题描述:无论是在sql 2000, 还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以, 当我们在处理下列要求时,会比较麻烦: 有表tb, 如下:id value----- ------1 aa1 bb2 aaa2 bbb2 ccc 需要得到结果:id values------ -----------1 aa,bb2 aaa,bbb,ccc 即, group by id, 求 value 的和(字符串相加) 1. 旧的解决方法-- 1. 创建处理函数CREATE FUNCTION dbo.f_str(@id int)RETURNS varchar(8000)ASBEGIN DECLARE @r varchar(8000) SET @r = '' SELECT @r = @r + ',' + value F
估计表大小(三)--估计无聚集索引的表的大小
估计无聚集索引的表的大小下列步骤可用于估计存储没有聚集索引的表上的数据和任何附加的非聚集索引所需的空间。 计算存储数据所用的空间。 计算存储每个附加非聚集索引所用的空间。 汇总计算所得的值。 对于每个计算,都要指定将在表中出现的行数。表中的行数将对表的大小有直接影响:表中的行数 = Num_Rows计算存储数据所用的空间若要计算存储数据所用的空间,请参见估计表的大小。 记下计算所得的值:存储数据所用的空间 = Data_Space_Used计算存储每个附加非聚集索引所用的空间下列步骤可用于估计没有聚集索引的表上的单个非聚集索引的