标签: sql-server-2005

索引上的行锁会导致键锁吗?:事务(进程 ID xy)已死锁,包括示例

我目前遇到错误(通过 traceID 1222 记录):

keylock hobtid= 8205698989 objectname=mydb.dbo.Orders indexname = _dta_Index_Orders_5_120345_K1_K2_7_1 id=lock43fe181 mode=S AssociatedObjectID = 8205698989 
waiterID = process 85b2566 mode=S requestType=wait
waiter-list
keylock hobtid= 820562208 objectname=mydb.dbo.Orders indexname = pk_Orders_OrderID id=lock4012341 mode=X AssociatedObjectID = 820562208 
resource-list
Update Orders set OrderType = 1 where OrderID = 52000 and DeliveryID = 1236
inputbuf
Update [Orders] set [OrderType] = @1 where [OrderID] = @2 and [DeliveryID] = @3
Run Code Online (Sandbox Code Playgroud)

桌子:

Orders
Run Code Online (Sandbox Code Playgroud)

列:

OrderID         int (pk)
OrderNumber     Varchar(50)
OrderDate       datetime
OrderType       int
DeliveryID  int
DateDelivered …
Run Code Online (Sandbox Code Playgroud)

index sql-server-2005

2
推荐指数
1
解决办法
937
查看次数

64 位 SQL Server 上的 32 位 ODBC 驱动程序

我无法将 ODBC 64 位驱动程序与在 SQL Server 2012 64 位实例上运行的 SSMS 2012 一起使用。但是,我相信 32 位驱动程序可以工作。

我的问题是我可以使用 SSMS 2005 32 位在 SQL Server 2012 的 64 位实例上使用 ODBC 创建链接服务器吗?我尝试这样做,但是当我单击“确定”以创建链接服务器时,我收到了消息:

索引超出数组范围

我在做什么完全错误,或者有什么方法可以使用 32 位 ODBC 连接创建此链接服务器?

sql-server-2005 sql-server linked-server sql-server-2012

2
推荐指数
1
解决办法
5524
查看次数

我什么时候应该使用收缩选项

我看到很多博客都说缩小不是一个好习惯,因为它会降低系统的性能。我同意所有这些会导致诸如碎片等副作用的事情。

现在我的疑问是我应该在数据库中使用收缩选项的场景是什么。

我从未见过有人说它有用的场景。收缩总是邪恶的吗?

sql-server-2005 sql-server-2008 sql-server shrink

2
推荐指数
1
解决办法
181
查看次数

将数据库从 SQL Server 2005 迁移到 SQL Server 2008 R2

DBA...请对我温柔一点,我是一个“新手”SQL Server DBA,因为我公司的 DBA 已经辞职而我们还没有找到他的替代者,所以被迫投入使用。

先说我的情况:

我应该将网络应用程序从新加坡的服务器“转移”到印度尼西亚的(一对)新建服务器。不幸的是,新加坡数据库服务器运行的是 SQL Server 2005 Express Edition,而新服务器运行的是 SQL Server 2008 R2。更糟糕的是,网络应用程序的开发人员不再支持我们(我们实际上是在使用最新版本的网络应用程序)*。

我计划在 SQL2008R2 上创建一个新实例。

我有几个问题一直困扰着我:

  1. 我如何找出新加坡服务器上安装了哪些“功能”(例如,报告服务、复制等)?

  2. 如何确保完整备份(数据库和存储过程以及其他相关花絮)?

  3. 我注意到有几个存储过程(不是很多,我在“Databases\AppDB\Programmability\Stored Procedures”树下只能看到4个),如何确保成功迁移这些存储过程?有什么我需要注意的问题吗?

感谢您提供任何意见。

* The plan actually is to just migrate the web-app as a "read-only" app for archival/audit
purposes; management has plans to deploy a better web-app in its place.
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 migration sql-server-2008-r2

2
推荐指数
1
解决办法
1349
查看次数

SQL Server 2005 及更高版本 - 捕获基线

我想设计一个过程,通过它我可以在单个数据库中捕获多个 SQL Server 实例(2005 年以后)的基线数据,从中我可以获得所有信息和警报。

截至目前,我想捕获有关以下计数器的信息:

  1. 磁盘上的可用空间

  2. 可用的数据库文件和日志空间

  3. 等待统计

  4. CPU 和内存计数器

如果需要,是否有任何免费工具可以参考和修改,或者任何有用的文章可以帮助我进行设置?

到目前为止,我指的是 SQLServerCentral.com 上 Erin Stellato 的文章。

任何帮助将不胜感激。

sql-server-2005 sql-server-2008 sql-server

2
推荐指数
1
解决办法
260
查看次数

如何更新 SET 语句以便我可以使用 MIN() 函数?

我有一个现有的 UPDATE 表 SET 语句,该语句一直在工作,直到其中一个司机在他/她的班次中使用了两辆不同的卡车,所以现在我需要做的是修改 UPDATE 语句,以便我可以在几个卡车上使用 MIN() 函数列。当我尝试将 MIN() 函数添加到存在的语句中时,我收到了错误

聚合可能不会出现在 UPDATE 语句的集合列表中。”

这是我现有的 UPDATE 语句代码:

UPDATE #tmpDriverTime
SET @StartPlus8 =   CASE 
                        WHEN  ((CONVERT(int, DTE.StrtTm) + 800) > 2400) AND (CONVERT(INT, DTE.StartBreak) < 1600) THEN ((CONVERT(INT, DTE.StrtTm) + 800) - 2400)
                        ELSE (CONVERT(INT, DTE.StrtTm) + 800)
                    END,
    WorkDay1Break = CASE
                        WHEN ((WorkDay1 <=8) AND (WorkDay1Break = 0)) THEN 2 --Does not need a break
                        WHEN ((WorkDay1 > 8 AND DTE.StartBreak IS NULL) AND (WorkDay1Break = 0)) THEN 1 --Worked …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 t-sql

2
推荐指数
1
解决办法
1444
查看次数

SQL Server 群集上固态驱动器上的 TempDB

如果固态驱动器在两台机器上都是本地驱动器,它们是否可以用于 SQL Server 故障转移群集上的 TempDB?它在 2012 年受支持,但我们的集群是 SQL 2005。它运行的应用程序不能升级到 2012。

如果 SSD 驱动器在两台服务器上位于相同的本地路径上,它不会在故障转移时重建 TempDB 吗?集群不会识别操作系统识别的任何驱动器吗?或者还有其他需要考虑的问题。

我意识到微软不会支持它,但性能提升会很棒。我们在该集群上的 TempDB 是使用最多的数据库,我们无法更改它运行的应用程序中的任何代码。

sql-server-2005 sql-server clustering tempdb hardware

2
推荐指数
1
解决办法
1646
查看次数

Windows 8 上的 SQL Server 2005 Express

我需要在 Windows 8 Home Edition x64 上安装 SQL Server 2005 Express。

但我收到兼容性错误!

我尝试过 SQL Server 2005 的 SP1、SP2、SP3。

Visual Studio 2008 工作正常。

有什么建议?

sql-server-2005 sql-server windows-8

2
推荐指数
1
解决办法
1万
查看次数

SQL Server 2005 日志截断 - 60Gb 日志的长度;分钟、小时还是天?

我接管了一个旧网站。长话短说,托管计算机的人备份所有数据库文件,但没有备份维护计划(例如,他们实际上是从磁盘备份文件,因此不会发生截断)。

恢复模式为FULL (SQL Server 2005)。

这有点像“一根绳子有多长”的问题,但只需要一个棒球场数字来说明截断需要多长时间:

BACKUP LOG  databasename  WITH TRUNCATE_ONLY
Run Code Online (Sandbox Code Playgroud)

60Gb 日志(机器是合理的英特尔 4 核 2.5Ghz 8Gb 机器(不是 SSD 驱动器))可能需要几分钟、几小时或几天?

sql-server-2005 sql-server backup truncate transaction-log

2
推荐指数
1
解决办法
2109
查看次数

从表中删除另一个选择的三个键中的两个

我有tableA4 列:

IDA(bigint)、IDB(int)、IDC(varchar(255)) 和comment(varchar(255))。主键是 ( IDA, IDB, IDC)。

我需要删除 ( IDA, IDB)计数大于 1 且comment为“temp”的记录。我想出了以下 SQL 语句:

DELETE FROM tableA WHERE IDA, IDB IN (SELECT IDA, IDB FROM tableA GROUP BY IDA, IDB HAVING COUNT(*) > 1) AND comment = 'temp'

但我收到以下错误:“在预期条件的上下文中指定的非布尔类型的表达式,靠近 ','。[...]”

使用 Microsoft SQL Server Enterprise Edition v9.00.3042.00,即 SQL Server 2005 Service Pack 2

我很新,很感激任何帮助/建议。

sql-server-2005 sql-server delete

2
推荐指数
1
解决办法
2087
查看次数