
BUG与疑难问题
zjcxc
这个作者很懒,什么都没留下…
展开
-
SQL Server BUG集之"自定义函数与group by"
/**==** 1. 自定义函数用于group by时出错 **==**/--一个简单的函数create function f_str(@str sysname,@i int)returns char(1)as begin return(substring(@str,@i,1)) endgo--下面是测试--定义测试数据declare @t table(name sysname)inse原创 2004-07-21 13:27:00 · 3293 阅读 · 3 评论 -
无法在 SQL Server 2005 Manger Studio 中录入中文的问题
问题表现:在 SQL Server 2005 Manger Studio中打开表,无法输入中文,只能输入英文 问题重现:1. 我们建立如下三个测试表:CREATE TABLE ta( id int IDENTITY, col varchar(50)) CREATE TABLE tb( col varchar(50),原创 2006-08-20 10:49:00 · 13281 阅读 · 12 评论 -
SET NOCOUNT 的怪问题
/**//*-- SET NOCOUNT 的问题SQL 版本: SQL Server 2005 3159故障描述:当满足下述条件时, SET NOCOUNT 导致 TRY ... CATCH 无法正确处理错误1. 使用 EXEC() AT 或者 EXEC ..dbo.sp_executesql 2. 中包括输出参数3. 中包括 SET NOCOUNT ON 和 USE 语句(注意不能更原创 2008-01-20 07:03:00 · 3277 阅读 · 0 评论 -
令人郁闷的“事务中的变量赋值错误”
事务中的变量(包括表变量)的操作是不受事务控制的。但是反过来,事务中的变量操作失败,却会导致事务提交失败,这个有点让人郁闷。 下面的脚本演示这个问题。示例演示分拆以逗号分隔的 @ids 中的每个 id, 如果这个 id 是数字(int型),则做后面的处理;如果不是数字(赋值失败,进入CATCH块),则跳过这个id,处理下一个。整个处理在一个事务中进行。原创 2008-12-28 02:56:00 · 9346 阅读 · 2 评论 -
处理SQL 2008/08 中的OUTPUT与CHECK约束冲突的问题
在SQL Server 2005中,新增的OUTPUT子句极大地提高了数据转移的方便性,不过很遗憾的是, OUTPUT子句的输出表不能包含启用状态的CHECK约束。这未免让人觉得很不爽。不过,在实际使用过程中,却发现了一个很奇怪的问题,某些具有启用状态的CHECK约束的表确实无法用于OUTPUT子句,而某些表却是可以的,经过对比,发现了这个很奇怪现象的原因,使得可以把有启用状态的原创 2009-04-22 05:06:00 · 10625 阅读 · 4 评论 -
锁不住的查询
环境: SQL Server 2005 or 2008最近在处理一个锁的问题时,发现一个比较郁闷的事,使用X锁居然无法锁住查询,模拟这个问题,可以使用如下T-SQL脚本来建立测试环境。USE master;GO IF @@TRANCOUNT > 0 ROLLBACK TRAN;GO -- ================================原创 2009-07-27 10:27:00 · 15332 阅读 · 51 评论 -
在 SQL Server 中使用 Windows 用户组的一些诡异问题
最近,在SQLServer中使用Windows用户组时,发现了一些比较诡异的问题。SQL Server版本:SQL Server 2008 R2问题1:Login failed for user 'xx\xx'操作描述: 在SQL Server中添加一个Windows用户,并且使用该用户连接SQLServer(Windows身份验证),登录失败,日志中出现如原创 2012-04-17 17:40:09 · 11060 阅读 · 4 评论 -
无语,遭遇: Error: 605, Severity: 21, State: 3
最近遇到一个严重错误Error: 605, Severity: 21, State: 3.Attempt to fetch logical page (1:xxxxx) in database 2 failed. It belongs to allocation unit xxxxxnot to xxxxx.严重级别 21, 看起来非常吓人,根据联机帮助对该错误的描述说明http://techne原创 2013-12-09 17:10:42 · 10978 阅读 · 2 评论 -
Error: 7884, Severity: 20, State: 1
背景: 程序异常中断“TCPProvider, error: 0 - An existing connection was forcibly closed by the remotehost.”,手工执行查询没有问题,不过执行时间要几十秒。Trace程序的执行,发现要数十分钟,经了解,原因在于程序使用了SqlDataReader读取数据,并且在读取的过程中进行了一系列数据处理,原创 2014-11-21 16:31:57 · 9656 阅读 · 0 评论 -
与SQL Server补丁相关的问题
1 分布式事务的问题http://community.youkuaiyun.com/Expert/topic/4874/4874208.xml?temp=.298443执行下面的语句:INSERT INTO aa SELECT * FROM SrvA.DbA.dbo.tbABEGIN TRAN INSERT INTO B SELECT * FROM AACOMMIT TRAN原创 2006-07-15 21:50:00 · 5280 阅读 · 2 评论 -
TOP 1比不加TOP慢的疑惑
问题描述:有一个查询如下,去掉TOP 1的时候,很快就出来结果了,但加上TOP 1的时候,一般要2~3秒才出数据,何解?SELECT TOP 1 A.INVNO FROM A, BWHERE A.Item = B.ItemNumber AND B.OwnerCompanyCode IS NOT NULL 问题原因分析:在使用TOP原创 2006-07-10 11:30:00 · 15180 阅读 · 10 评论 -
索引对查询条件顺序的影响
原帖地址:http://community.youkuaiyun.com/Expert/FAQ/FAQ_Index.asp?id=207897环境:Sql Server2000 +sp4问题:select datediff(day,20040910,20040920) --这句可以执行--而下面这句不能执行(有时也可以执行)--sub_para为varchar(8),错误信息是:从字符串原创 2004-09-22 13:10:00 · 4237 阅读 · 0 评论 -
master 数据库还原新问题
master 数据库还原新问题 -- 1. 版本问题 问题描述:在新服务器上还原老服务器的 master 数据库:RESTORE DATABASE MASTER FROM DISK=C:/TMP/SQLSYS20050516.BAK WITH FILE=1出现以下错误:服务器: 消息 3168,级别 16,状态 1,行 1无法还原设备 C:/TMP/SQLSYS20050516.BAK 上的系原创 2005-08-24 16:36:00 · 10665 阅读 · 4 评论 -
在全文索引建立的目录不存在情况下删除全文索引
在全文索引建立的目录不存在情况下删除全文索引 建立全文索引硬盘建立了一个目录,直接把目录文件夹给删除了,现在到企业管理器里就无法删除全文索引了。如何删除全文索引? 在一台sql server正常的电脑,如果没有配置全文检索,随便配置一个. 然后复制 /Program Files/Microsoft SQL Server/MSSQL/FTDATA 到你误删除了目录的电脑中的对应位置原创 2005-08-20 17:39:00 · 4745 阅读 · 0 评论 -
如何将 DBCC INDEXDEFRAG 执行的结果插入到表中
如何将 DBCC INDEXDEFRAG 执行的结果插入到表中 欲将 DBCC INDEXDEFRAG 执行的结果插入到表中,收到如下错误信息"用户事务下无法对dbcc indexdefrag的结果操作" -- 获取数据DECLARE @err int,@src varchar(255),@desc varchar(255)DECLARE @obj int,@str varchar(1000)--原创 2005-08-24 13:25:00 · 4237 阅读 · 0 评论 -
如何使用跟踪标记 1204
如何使用跟踪标记 1204 -- =====================================================-- 如何使用跟踪标记 1204-- -- 邹建 2005.08(引用请保留此信息)-- =====================================================-- ===========================原创 2005-08-25 09:15:00 · 12871 阅读 · 4 评论 -
SELECT 赋值与ORDER BY冲突的问题
问题描述:使用 SELECT 语句,轮询表中的数据,并且处理变量数据时,如果有ORDER BY语句,则得不到想要的结果,但去掉ORDER BY,结果正常。具体的问题表现参考下面的问题重现代码 问题重现代码-- 测试数据DECLARE @T TABLE(id int,value nvarchar(16))INSERT INTO @T SELECT原创 2006-09-17 20:19:00 · 10943 阅读 · 14 评论 -
MS SQL 内存使用异常
问题描述: 环境:主机;IBM 445 /4 棵cpu/4G M OS = windows server MSSQL = Enterprise edition server +sp3状况: 我的MSSQL 一停用,在操作系统的任务管理器中,内存使用状诚指示条一下就降到到接近0,当我一启动MSSQL服务,任务管理器中的内存使用状态指示条原创 2006-06-29 21:11:00 · 6564 阅读 · 2 评论 -
如何解决引用对象时,必须加所有者(owner)的问题
问题描述:从别处copy来一个数据库DB,附加后,对象的所有者不是Admini,每次查询时必需写select * from Admini.***才能查到。有什么方法不用前面的Admini吗(在不修改所有者的前提下)?注:已经在“安全性-登陆”下面也新建了一个Admini用户,默认数据库设置为DB,权限足够,但在查询分析器下用Admini登陆,查询时还是要写Admini前缀,否则就提示对原创 2006-07-03 16:21:00 · 5066 阅读 · 1 评论 -
一个子查询引发的血案
最近再次看到一个帖子,说使用类似如下子查询删除数据,结果发现所有的数据都被删除了 DELETE FROM a WHERE id in ( SELECT id FROM b ) 粗看这是一个没有任何毛病的删除操作,只会删除 a,b 表 id 匹配的记录。但实际上这个查询暗藏杀机,如果 b 表恰好有数据,并且b表没有字段id,这个操作的结棍是什么? 很显然,如果b表没有id字段,并且有原创 2017-12-16 13:54:34 · 1868 阅读 · 0 评论