深入理解 SQL Server 2008 的锁机制
相比于 SQL Server 2005(比如快照隔离和改进的锁与死锁监视),SQL Server 2008 并没有在锁的行为和特性上做出任何重大改变。SQL Server 2008 引入的一个主要新特性是在表级控制锁升级行为的能力。新的LOCK_ESCALATION表选项允许你启用或禁用表级锁升级。这个新特性能够减少锁竞争并且改善并发性,特别是对于分区表(parti...
SQL Server 2008 R2 事务与隔离级别实例讲解
上班途中,你在一处ATM机前停了下来。正当你在敲入密码的时候,你的一位家人也正在镇上的另一处TAM机上输入密码。你打算从某个还有500元余额的账户上转出400元,而你的家人想从同一账户取走300元。倘若没有隔离级别的存在,麻烦就要来了......SQL Server 实现了6个隔离级别来防止并发情况下,类似上面例子中企图并发的访...
SQL Server 2008 R2 排序规则详解
一、 使用排序规则排序规则指定字符串数据如何比较和排序的规则,基于特定的语言与区域标准。例如,在ORDER BY子句中,如果按升序排列的话,说英语的人会期望字符串'Chiapas'出现在'Colima'之前;然而,说西班牙语的墨西哥人将期望以‘Ch’开头的单词出现在以'C'开头的单词列表的末尾。排序规则负责控制这些类型的比较...
Query to Check SP/Table/Trigger Exists in Database or not
We often need create/update Stored Procedure,Tables or Triggers in database via SQL scripts. It is a best practice to check if these objects exist in the database before create/update them.Let's look at several examples1. Checking whether procedure exist in the NORTHWIND database with name 'CustOrdersDetail' Approach -1:use NORTHWINDif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustOrdersDetail]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)print 'CustOrdersDetail Exists i
SQL Server 2005 Developer Edition English Version Setup on Windows 7
In the recent project, our customer required to use MS SQL Server 2005 English Version as the database backend. I try to install it on my machine which is Windows 7. Follow the setup wizard, and on the "System Configuration Check" screen , there is a waring says "ASP.Net Version Registration Requirement", click the "Message" link you will see the detail: "Failed to find the ASP.Net Version Registration with Microsoft Internet Information Services (IIS)." I
SQL Server 2005 简体中文开发版的安装问题
在Windows XP sp2上安装SQL Server 2005 简体中文开发版,提示“SQL Server安装程序无法获取ASPNET帐户的系统帐户信息。请重新安装.Net framework。”解决办法:“开始”菜单 --> “运行”,输入命令“cmd”,打开Command窗口。输入命令:"cd C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727(回车符)"然后,输入命令:aspnet_regiis -u (回车符),卸载.net framework 2.0。然后,输入命令:aspnet_regiis -i (回车符),重新安装.net framework 2.0。再次运行SQL Server 2005安装程序,安装成功。[@more@]
取汉字全拼的SQL函数
/* 根据汉字获取全拼 1.生成所有读音临时表 2.根据Chinese_PRC_CS_AS_KS_WS 排序获取读音*/CREATE function f_GetPinYin(@str varchar(100))returns varchar(8000)asbegin declare @re varchar(8000) --生成临时表 declare @t table(chr nchar(1) collate Chinese_PRC_CS_AS_KS_WS,py nvarchar(20)) insert into @t select'吖','a' insert into @t select'厑','aes' insert into @t select'哎','ai' insert into @t select'安','an' insert into @t select'肮','ang' insert into @t select'凹','ao' insert into @t select'八','
取汉字的拼音首字母的SQL函数
版本一:CREATE FUNCTION f_GetPY(@str nvarchar(4000))RETURNS nvarchar(4000)ASBEGINDECLARE @py TABLE(ch char(1),hz1 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS,hz2 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS)INSERT @py SELECT 'A',N'吖',N'鏊'UNION ALL SELECT 'B',N'八',N'簿'UNION ALL SELECT 'C',N'嚓',N'错'UNION ALL SELECT 'D',N'哒',N'跺'UNION ALL SELECT 'E',N'屙',N'贰'UNION ALL SELECT 'F',N'发',N'馥'UNION ALL SELECT 'G',N'旮',N'过'UNION ALL SELECT 'H',N'铪',N'蠖'UNION ALL SELECT 'J',N'丌',N'竣'UNI
SQL Server 分布式查询
场景:需要访问SQL Server数据库服务器以外的数据源,如Access,Excel或另一台SQL Server服务器。方法一: 通过链接服务器。使用sp_addlinkedserver 添加链接服务器名称,链接服务器定义包含定位 OLE DB 数据源所需的全部信息。本地 SQL Server 登录通过使用 sp_addlinkedsrvlogin 映射到链接服务器中的登录。 关于sp_addlinkedserver ,sp_addlinkedsrvlogin 的用法,请查阅SQL Server帮助文档。方法二:使用OPENROWSET 和 OPENDATASOURCE 函数。默认情况下,不支持临时名称。DisallowAdhocAccess 访问接口选项必须设置为 0,同时必须启用
“SQLServer 不存在或访问被拒绝”的解决办法
场景:SQL Server 2000企业版安装在Windows 2003 Server系统上。运行ASP.Net应用程序时,提示错误信息:“SQLServer 不存在或访问被拒绝”。解决办法:1. 检查网络物理连接: ping <Server Name/IP>。2. 检查SQL Server连接配置是否有拼写错误。3. 检查SQL Server服务器端配置:telnet <服务器IP地址> 1433。如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接,如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL S
SQL Server 2000 安装文件挂起错误的解决办法
场景:在Windows XP系统上安装SQL Server 2000,选择安装“简体中文标准版”,提示该版本的操作系统不能安装服务器组件,只能安装SQL Server 2000个人版。于是退出,选择安装个人版。却出现了新的错误: “以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。”但是,重启计算机后再安装仍出现相同错误。解决办法:“开始”菜单 --> “运行”,在命令行窗口中输入“regedit”,打开注册表编辑器,在HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession Manager中找到PendingFileRenameO
通过数据库文件还原数据库
本文向你介绍一种快速简便的数据库创建/还原方法。在SQL Server查询分析器里,新建查询。执行以下SQL代码:sp_attach_single_file_db @dbname = 'AdventureWorks', @physname = 'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataAdventureWorks_Data.mdf'将粗斜体部分替换为你希望的值。[@more@]
通用的SQL Server数据库查询分页存储过程
基于web的应用程序,经常要执行返回大量数据的查询。ASP.Net的DataGrid或者GridView自带的分页功能虽然简单,但是并不适用于对性能和负载要求较高的应用场合。我们希望仅从数据库返回1页的数据给web客户端,而不是返回10000条数据只显示给用户20条。网络上有大量分页查询存储过程的资源,本人也搜集了一些。现将本人认为最具有通用性、易用性的一个版本帖出来,与大家分享。Code:/*使用说明:本存储过程可用于单表查询,或多表连接查询。支持的查询对象包括表、视图、自定义表值函数。返回结果集:1)指定页的记录数量;2)记录总数示例:
清除SQL Server数据库日志
无论是开发、测试环境还是正式的生产环境,常常会由于SQL Server数据库日志已满,导致无法Insert或update数据。此时需要清除数据库日志。以下是清除SQL Server数据库日志的SQL脚本:SET NOCOUNT ONDECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INTUSE DatabaseName -- 要操作的数据库名SELECT @LogicalFileName = 'YourDatabaseLogFileLogicName', -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log. @NewSize = 1 -- 你想设