SQL Server
伴老思源
多年从事WEB、App开发与应用,在其相关领域有丰富的开发管理经验
展开
-
SET STATISTICS IO ON的使用
SET STATISTICS IO 使 SQL Server 显示有关由 Transact-SQL 语句生成的磁盘活动量的信息。语法:SET STATISTICS IO { ON | OFF }注:如果 STATISTICS IO 为 ON,则显示统计信息,直到遇到OFF时不显示统计信息。例如:SET STATISTICS IO ONselect * from _Sale_Bill_NewSET原创 2011-05-19 15:29:00 · 3887 阅读 · 0 评论 -
SQL提取数字、英文、中文以及过滤重复字符
原创:fredrickhu--提取数字IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULLDROP FUNCTION DBO.GET_NUMBER2GOCREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^0-9]%转载 2011-12-21 11:00:38 · 2439 阅读 · 0 评论 -
使用sp_addextendedproperty添加描述信息
-- For table EXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'dbo', N'table', N'表名', NULL, NULL -- For columnEXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'db原创 2010-04-15 14:27:00 · 12433 阅读 · 0 评论 -
解决 "未能为数据库 '数据库用户名' 中的对象 '表名' 分配空间,因为文件组 'PRIMARY' 已满"
1.检查磁盘剩余空间是否足够.2.检查磁盘分区格式: FAT16,数据文件最大2G; FAT32,数据文件最大4G; NTFS分区没有限制.3.检查数据库文件的大小是否有限制: 企业管理器->数据库->属性->文件增长限制是否有限制. 4.如果数据库是MSDE,数据文件最大2G. 5.也可以为 primary 组添加新的数据文件来解决这个问题:alter database 数据库名 ad原创 2009-12-07 13:01:00 · 4302 阅读 · 0 评论 -
sql多行转为一列的合并问题
/*标题:按某字段合并字符串之一(简单合并)作者:大乌龟描述:将如下形式的数据按id字段合并value字段。id value----- ------1 aa1 bb2 aaa2 bbb2 ccc需要得到结果:id value------ -----------1 aa,bb2 aaa,bbb,ccc即:group by id转载 2009-03-02 10:17:00 · 3517 阅读 · 2 评论 -
根据日志恢复数据库
--根据日志恢复数据库use master--创建数据库CREATE DATABASE TempDBON PRIMARY( NAME='TempDB_data', FILENAME= 'c:/TempDB_data.mdf')LOG ON( NAME='TempDB_log', FILENAME ='c:/TempDB.ldf')GO--创建表CREATE TABLE Te原创 2009-02-06 10:11:00 · 1782 阅读 · 2 评论 -
控制数据库容量
减少LOG文件占用硬盘大小: 1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有520K,然后再将此数据库设置自动收缩.或使用CODE来做: 下面的示例分离数据库 TestData,然后将 TestData 中的一个文件附加到当前服务器。 EXEC sp_detach原创 2008-08-18 17:14:00 · 1870 阅读 · 0 评论 -
sp_MSforeachtable的作用
/********************************************************************************* sp_MSforeachtable 系统存储过程有7个参数: @command1 nvarchar(2000), --第一条运行的t-sql指令 @replacechar nchar(1) = n'?', --指定的占位符号原创 2008-06-06 10:16:00 · 2582 阅读 · 1 评论 -
sp_MSforeachdb获得所有的数据库的存储空间
/********************************************************************************* sp_MSforeachdb 系统存储过程有6个参数: @command1 nvarchar(2000) --第一条运行的t-sql指令 @replacechar nchar(1) = N'?' --指定的占位符号原创 2008-06-06 10:12:00 · 982 阅读 · 0 评论 -
sp_MSforeach_Worker 批量清除数据库中被植入的js
最近发现好多兄弟网站都被qj了, 数据库中被植入js,贴个批量清除的方法[*仅限SQL2000];sp_MSforeach_Worker 的用法及结构详见http://blog.csdn.net/abandonship/archive/2008/06/06/2515884.aspxDECLARE @fieldtype sysnameSET @fieldtype='varchar'--删除处理DEC原创 2008-06-06 10:06:00 · 1546 阅读 · 0 评论 -
sp_MSforeach_Worker深入浅出
从SQLSERVER6.5开始,MS提供了一个非常有用的系统存储过程sp_MSforeachtable和sp_MSforeachDB;作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须这样写游标:DECL原创 2008-06-06 09:51:00 · 2723 阅读 · 0 评论 -
SQL Server 2005利用分区对海量数据的处理 [转自13590--北极燕鸥]
超大型数据库的大小常常达到数百GB,有时甚至要用TB来计算。而单表的数据量往往会达到上亿的记录,并且记录数会随着时间而增长。这不但影响着数据库的运行效率,也增大数据库的维护难度。除了表的数据量外,对表不同的访问模式也可能会影响性能和可用性。这些问题都可以通过对大表进行合理分区得到很大的改善。当表和索引变得非常大时,分区可以将数据分为更小、更容易管理的部分来提高系统的运行效率。如果系统有多个CPU或原创 2008-04-02 09:15:00 · 1027 阅读 · 0 评论 -
BCP说明及用法
BCP是SYBASE公司提供专门用于数据库表一级数据备份的工具。 一般存放在所安装的ASE或者Open Client 的BIN目录中。 12版本以前的ASE,bcp存放目录为 $SYBASE/bin 12版本(含12版本)以后存放目录为 $SYBASE/OCS-12_x/bin 其中$SYBASE为SYBASE安装目录,12_x代表12.0、12.5版本,显示为12_0或者12_5 可执行文件名称原创 2006-10-19 10:57:00 · 2080 阅读 · 0 评论 -
金额转换为英文大写的SQL函数
CREATE FUNCTION [dbo].[F__En_ChangeUpperCase] (@num numeric(15,2))RETURNS varchar(400) WITH ENCRYPTIONASBEGIN--All rights reserved. pbsql DECLARE @i int,@hundreds int,@tenth int,@one int DECLARE @th原创 2005-11-21 10:58:00 · 1853 阅读 · 1 评论 -
使用SET NOCOUNT ON
触发器使表格和交叉数据库之间自动同步变得更容易。但是其性能可能会受到很大的影响。这里我将指出一个能减少这种无法预料问题影响的命令。例如,当INSERT触发器重复地被激活,尤其当使用“INSERT INTO”语句进行大量的插入操作,在这种触发器一再被激活的情况下,触发器每个插入操作会发出“DONE_IN_PROC”信息,这会严重地减慢速度。 如果触发器正在获取结构化查询语言服务器代理程序的结果,这原创 2005-09-21 16:01:00 · 3366 阅读 · 0 评论 -
去掉xpcmdshell增加系统安全性
1.去掉xp_cmdshell扩展过程的方法是使用如下语句:以下是代码:if exists (select * from dbo.sysobjects where id=object_id(N'[dbo].[xpcmdshell]') and OBJECTPROPERTY(id,N'IsExtendedProc')=1)exec sp_dropextendedproc N'[dbo].[xp_cm原创 2005-06-30 09:22:00 · 2099 阅读 · 0 评论 -
IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法
首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~【转换原理】:假设IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP = 256*256*256*w + 256*256*x + 256*y + z【PHP的互转】:PHP的转换方式比较简单,它内置了两个函数int ip2long ( string $ip_address )和 string long2ip原创 2012-05-30 11:24:08 · 3848 阅读 · 0 评论 -
处理向SQL2005DTS数据时【无法在只读列中插入数据】
错误经过:使用SQL2005导入数据,选择数据源为SQL2000的数据库在导入过程中出现的错误~ 详细错误: - 正在验证 (错误)消息错误 0xc0202049: 数据流任务: 无法在只读列“AreaID”中插入数据。 (SQL Server 导入和导出向导) 错误 0xc0202045: 数据流任务: 验证列元数据失败。 (SQL Server 导入和导出向导) 错误 0xc004706b:原创 2010-04-08 13:38:00 · 5272 阅读 · 0 评论 -
解决关于SQL2005注册连接SQL2000查看表值函数时的"属性QuoteIdentifierStatus不可用于UserDefinedFunction"[dbo].[函数名]"……”的提示
详细错误:属性QuoteIdentifierStatus不可用于UserDefinedFunction"[dbo].[函数名]"。该对象可能没有此属性,也可能是访问权限不足而无法检索。 造成原因:使用SQL2005注册连接SQL2000的服务器,在使用sa的前提下仍提示此错误~ 解决办法:经查证为缺少SQL2005 Sp2所致~原创 2010-08-03 09:40:00 · 2162 阅读 · 0 评论 -
SQL农历转换函数
---------------------------------------------------------------------------- Author : 原著:不详 改编:htl258(Tony)-- Subject: 完善SQL农历转换函数(显示中文格式,加入润月的显示)-----------------------------------------------转载 2010-04-28 10:50:00 · 1101 阅读 · 1 评论 -
解决无法连接SQL2005数据库的问题
1. 打开数据库的SQLServer和windows身份验证模式:SQL Server Management Studio->对象资源管理器->右键本地服务器连接->属性->安全性->服务器身份验证->选择"SQLServer和windows身份验证模式"即可~ 2. 打开“同时使用TCP/IP和named pipes”开始->所有程序->Microsoft SQL Server2005->配置工原创 2010-07-20 11:07:00 · 4441 阅读 · 0 评论 -
(win7)SQL SERVER 2005开发版 安装错误:无法找到产品Microsoft SQL Server Native Client的安装程序包,尝试再次使用的安装包 ' Sqlncli.ms
Microsoft SQL Server Native Client在控制面板中已存在,卸了,再装即可~ 这几天换系统,纠结一下~原创 2010-05-20 15:29:00 · 4191 阅读 · 0 评论 -
SQL发邮件
1. 启用 SQL Server 2005 邮件功能。 use mastergoexec sp_configure 'show advanced options',1goreconfiguregoexec sp_configure 'Database mail XPs',1goreconfigurego2. 在 SQL Server 2005 中添加邮件帐户(account) exec msdb.转载 2009-07-30 11:30:00 · 1731 阅读 · 0 评论 -
SQL过滤中文(或英文)数据
只获取英文数据:select * from T where PATINDEX(N'%[吖-咗]%',字段名) = 0只获取中文数据:select * from T where PATINDEX(N'%[吖-咗]%',字段名) 其中,函数:PATINDEX ('%pattern%', expression)参数: pattern一个文字字符串。可以使用通配符,但 pattern 之前和之后必须有 %原创 2011-12-21 10:56:58 · 8310 阅读 · 0 评论 -
处理【关于sql server 2008 表设计无法保存】的问题
打开SQL Server Management Studio->工具->选项->Designers->表设计器和数据库设计器->去掉"阻止保存要求重新创建表的更改"前的勾选,应用即可~原创 2011-06-21 16:23:00 · 2934 阅读 · 0 评论 -
SQL备份文件加密与还原[整理]
--用以下语句备份数据库BACKUP DATABASE [demo] TO DISK = N'C:/demo.bak' WITH NOFORMAT, NOINIT, NAME = N'demo-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10 , PASSWORD = '123456' --密码,可要记录哟GO--对备份文件进行检查d原创 2009-08-28 11:27:00 · 1664 阅读 · 0 评论 -
数据库异地备份三步走
要求:把数据库服务器(192.168.0.122)的数据库(Jiayoudb)备份到(192.168.0.211)的C$下 -- 第一步,做一个与客户端的映射 exec master..xp_cmdshell 'net use z: //192.168.0.211/c$ "密码" /user:192.168.0.211/administrator' /**********************原创 2009-08-28 11:14:00 · 1141 阅读 · 0 评论 -
sql 日期转换 所有格式
/** CODE CREATEBY BANLAO 2009-7-30 BEGIN **********************/ select convert(varchar, getdate(), 120 )-- 2009-07-30 11:06:08select convert(varchar(12) , getdate(), 23 )-- 2009-07-30select convert(v原创 2009-07-30 11:04:00 · 767 阅读 · 0 评论 -
数字转换成英文大写的SQL函数
/********************************************************************* 数字转换成英文大写** Code CreateBy Abandonship 2005.11.21*******************************************************************/CREATE FUNCTI原创 2005-11-21 15:18:00 · 4266 阅读 · 0 评论 -
数据库备份与恢复的存储过程
if exists(select * from sysobjectswhere name='pr_backup_db' and xtype='p')begindrop proc pr_backup_dbendgo/*备份数据库*/create proc pr_backup_db@flag varchar(10) out,@backup_db_name varchar(128),@filename原创 2004-12-17 16:03:00 · 1353 阅读 · 1 评论 -
解决MsSQLServer导入数据时遇到【“链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].2SB553' 无效的数据。】
【详细错误】:错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“链接服务器 '(null)' 的 OLE DB 访问接口 '原创 2013-01-17 10:31:49 · 13835 阅读 · 0 评论 -
处理SQL2000附加数据库时出现【服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库】的异常
错误详细:提示错误:服务器: 消息 1813,级别 16,状态 2,行 1未能打开新数据库 'OA_DB'。CREATE DATABASE 将终止。设备激活错误。物理文件名 'D:/OA/OA_DB_Log.LDF' 可能有误。 造成经过:发现老服务器的空间不足,检查发现几个数据库的日志都灰常庞大,于是直接分离->删除日志文件->再次附加数据库时,提示如上错误。 解决办法: 1. 建立新的同名数据原创 2010-07-13 10:16:00 · 4334 阅读 · 1 评论 -
sql server 提取汉字/数字/字母的方法
sql server 提取汉字/数字/字母的方法,作者:xys_777,转自xys_777的专栏 --提取数字IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULLDROP FUNCTION DBO.GET_NUMBER2GOCREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100))RETURNS VARCHAR(100)ASB转载 2010-07-19 17:20:00 · 1349 阅读 · 0 评论 -
解决SQLServer中变更海量数据表结构时产生【无法修改表. Timeout 时间已到. 在操作完成之前超时时间已过或服务器未响应. 】
【解决办法】: 工具->选项>设计器->表设计器和数据库设计器->右侧勾选“为表设计器更新重写连接字符串的超时值”,在它下面的“事务超时时间”默认应该是 30 秒,改得稍微大一些,不过好像不能超过65535.原创 2013-01-18 11:16:51 · 13429 阅读 · 0 评论