随笔分类 - mssql
摘要:Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示如果还为了这个纠结,就直接看看后面的解说,做决定吧。一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。sql server中的varchar和Nvarchar有什么区别?答:varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。
阅读全文
摘要:在做项目中,使用了float类型来定义一些列,如:Price,但是发现了很多问题1、当值的位数大于6位是float型再转varchar型的时候会变为科学技术法显示 此时只好将float型转换成numeric型,再转换成varchar2、float型变量在存入值时,有时值得大小会发生改变。这个现象发生在对报价保存时,如:保存一个3.8,但到了数据库中变成了3.80001124或3.79998999等在SqlServer的帮助中是这样描述float类型的:用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。所以今后这个类型一定要慎用评论#1楼218
阅读全文
摘要:今天在将txt文件导入MSSQL2005时,出了这个错误,到网上查了一下资料,说是因为没有安装SQL 2005 SP1的原因,所以我就下载了个。安装后,再次导入数据,OK 没问题了。http://www.microsoft.com/zh-cn/download/details.aspx?id=22954
阅读全文
摘要:最近,数据库系统经常出现“ 消息[298] SQLServer Error: 10054, TCP Provider: 远程主机强迫关闭了一个现有的连接。 [SQLSTATE 08S01]”一开始很迷惑,不知道原因,后来查询资料,发现 max worker thread 设置问题,由于前期 max worker thread 设置为255,连接过小,修改成0。SQL SERVER SQLOS的任务调度【介绍】SQL Server通过WORKER, SCHEDULER, TASK等来对任务进行调度和处理。了解这些概念,对于了解SQL Server内部是如何工作,是非常有帮助的。通常来讲,SCHE
阅读全文
摘要:隐式事务模式,在这种模式中,SQL Server在没有事务存在的情况下会开始一个事务,但不会像在自动模式中那样自动执行COMMIT或ROLLBACK语句。隐式事务必须显式结束(既Commit 或者Rollback)。以下语句在没有事务时隐式开始一个事务。ALTER TABLEGRANTFETCHDELETECREATEREVOKEINSERTSELECTDROPOPENUPDATETRUNCATE TABLEØ使用隐式事务1.启动SQL Server Management Studio并打开一个“新建查询”窗口。2.键入并执行以下语句来设置连接为隐式事务模式(此例的代码包含在示例文件
阅读全文
摘要:sqlserver 2008无论是什么类型的备份,完成后都将写入一个记录到errorlog中,如果长时间不清理,错误日志文件可能很大!设置关闭即可--关闭数据备份信息写入数据库日志DBCC TRACEON (3226,-1)
阅读全文
摘要:一: RAID简介 RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)是一项数据保护策略. 二: RAID的几种常用级别 1. RAID 0: 通过并行读取来提高数据I/O, 读取操作效率很高, 但是不提供数据容错及保护. 不推荐作为SQL Server使用. 2. RAID 1: 镜像保护,有两个驱动器,一个做主驱动器,一个做镜像, 所以是实际需要两倍的驱动器,第二个所为冗余使用. 使用RAID 1我们的存储容量应该是(n*s/2)。 一次写操作写入到两个磁盘, 所以虽写入速度会稍微有影响, 但是读取速度几乎是大多数情况下的...
阅读全文
摘要:RAID 为 Redundant Array of Indepent Disks (独立磁盘冗余阵列) 的缩写,最常用的四种RAID为 RAID 0、RAID 1、RAID 5、RAID 10,下面以图解的方式解释这四种RAID的特点和区别。在后面的图示中,用到以下标识:A,B,C,D,E和F - 表示数据块p1,p2,p3 - 表示奇偶校验信息块RAID 0RAID 0的特点:最少需要两块磁盘数据条带式分布没有冗余,性能最佳(不存储镜像、校验信息)不能应用于对数据安全性要求高的场合RAID 1以下为RAID 1的特点:最少需要2块磁盘提供数据块冗余性能好RAID 5RAID 5特点:最少3块
阅读全文
摘要:策略管理是SQL Server 2008中的一个新特性,用于管理数据库实例、数据库以及数据库对象的各种属性。策略管理在SSMS的对象资源管理器数据库实例下的“管理”节点下,如图:从图中可以看到,策略管理中包含三个节点:策略、条件、方面。方面就是策略要应用的对象,包括:服务器、表、触发器、视图、存储过程……这些方面对象都是系统定义好了的,仅供瞻仰不可更改。双击具体的某一个方面可以查看该方面的属性,在定义条件时即可对这些属性进行判断,如图为存储过程方面的属性。条件就是一个布尔表达式判断策略是否为真。策略就是在条件为假的情况下要执行的操作,即评估模式。策略中的评估模式有4种:按需、按计划、更改时记录
阅读全文
摘要:在搞清楚这个问题的过程中做了不少的实验,与各位共享。这一篇是开篇,主要说明的是 SQL Server 的四种(其实还有别的)经典的事务隔离级别,以及在不同的隔离级别下锁的使用手段,以及所带来的不同的数据一致性。SQL Server 中锁的种类(Schema操作就暂时不涉及了)锁类型描述(Shared Lock)用于只读操作数据锁定(Update Lock)用于数据的更新,在数据真正的需要更新的时候会申请升级为X锁。X(Exclusive Lock)独占锁,用于数据的更改。Key-Range Lock(稍后讨论)仅仅在 Serializable 隔离级别保护数据,以避免任何有可能使得本事务第二次
阅读全文
摘要:SQL Server Service Broker服务体系结构消息类型 — 定义应用程序间交换的消息的名称。还可以选择是否验证消息。约定 — 指定给定会话中的消息方向和消息类型。队列 — 存储消息。此存储机制使服务间可以进行异步通信。Service Broker 队列还有其他优点,比如自动锁定同一个会话组中的消息。服务 — 是可寻址的会话端点。Service Broker 消息从一个服务发送到另一个服务。服务指定一个队列来保存消息,还指定一些约定,约定指明该服务可作为“目标”。约定向服务提供一组定义完善的消息类型。处理的先决条件.USE master;GOALTER DATABASE 目标数据
阅读全文
摘要:复制存储过程执行应用于事务复制中,当在发布服务器上执行配置的存储过程时,存储过程导致的数据变更不会做为多步骤事务发送到订阅服务器,而仅仅是把执行存储过程的命令发送到订阅服务器。 比如,如果你为一个100万条记录的表增加了一个字段,并且初始化为一个值,如果不使用复制存储过程执行的话,那么这个操作就会形成100万个更新操作发送到订阅服务器,订阅服务器将将进行100万次更新,这个操作通常会花费很长时间,并导致后续的数据变更也无法得到及时的同步。 如果使用复制存储过程执行的话,你可以创建一个存储过程来实现这个更新,并且把这个存储过程添加到事务复制中,然后当你在发布服务器上执行完成这个存储过程后,这个.
阅读全文
摘要:在SQL Server 2005中,通过新增的Service Broker可以实现异步触发器的处理功能。本文提供一种使用Service Broker实现的通用异步触发器方法。在本方法中,通过Service Broker构造异步触发器处理架构,对于要使用这种架构的表,只需要创建相应的触发器及处理触发器中数据的存储过程,并且在异步触发器架构中登记触发器和处理的存储过程即可。如果一个触发器中的数据要被多个表使用,只需要在dbo.tb_async_trigger_subscribtion中登记相应处理数据的存储过程即可,即一个表的数据变更可以被多个表订阅(使用)。架构的步骤如下:1.数据库配置需要配置
阅读全文
摘要:CREATE TABLE #test(id INT IDENTITY(1,1), NAME varchar(30))INSERT #test(name)SELECT '41545'SELECT * FROM #testINSERT #test(name)SELECT '9999999999999999999999999999999999999999999999999999999999999999999999'SELECT * FROM #testINSERT #test(name)SELECT 'uiii'SELECT * FROM #test
阅读全文
摘要:困扰二天的问题终于得以解决,貌似一个棘手的问题只要知道方法也似乎变得异常简单,记录此次的解决方法,避免遗忘。无法对 数据库'UDS' 执行 删除,因为它正用于复制。 (.Net SqlClient Data Provider)在网上找了些答案无非是先让数据库"UDS"脱机,然后进行分离,但还是不能解决问题。根据查看错误的详细信息,原来微软的帮助与支持里面早就有此问题的解决方案,所以结合自己的实际情况执行下述语句,然后再进行DROP即可.sp_removedbreplication'UDS'DROP DATABASEUDS-----------
阅读全文
摘要:DECLARE @ip VARCHAR(60)='113.118.138.159'DECLARE @ip_int BIGINT=[dbo].[f_IP2Int](@ip)SELECT[IPstart], [IPend], [M1], [M2], [M3], [M4]FROM[master].[dbo].[ipv]WHEREipstart @ip_intGOSET STATISTICS IO ON SET STATISTICS TIME ON CREATE CLUSTERED INDEX ix_action ON [ipv](ipstart,[IPend])select dbo.
阅读全文
摘要:using System;using System.Collections;using System.Collections.Specialized;using System.Data;using System.Data.SqlClient;using System.Configuration;namespace SQLServerDAL //可以修改成实际项目的命名空间名称 { public abstract class DbHelperSQL { protected static string connectionString = @"Data Source=.;Initial
阅读全文
摘要:--SELECT stuid FROM dbo.BZList WHERE AreaOrganID=-1 AND AreaPointCode=-1 AND DeptOrganID=-1SELECT bzid,stuid, BZKTypeID, BZKTypeName, BZDate, BZData, BZRemark, PointCode FROM dbo.BZList WHERE StuID =338180 ORDER BY BZDateSELECT bzid,stuid, BZKTypeID, BZKTypeName, BZDate, BZData, BZRemark, PointCode
阅读全文