我目前遇到错误(通过 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) 我无法将 ODBC 64 位驱动程序与在 SQL Server 2012 64 位实例上运行的 SSMS 2012 一起使用。但是,我相信 32 位驱动程序可以工作。
我的问题是我可以使用 SSMS 2005 32 位在 SQL Server 2012 的 64 位实例上使用 ODBC 创建链接服务器吗?我尝试这样做,但是当我单击“确定”以创建链接服务器时,我收到了消息:
索引超出数组范围
我在做什么完全错误,或者有什么方法可以使用 32 位 ODBC 连接创建此链接服务器?
我看到很多博客都说缩小不是一个好习惯,因为它会降低系统的性能。我同意所有这些会导致诸如碎片等副作用的事情。
现在我的疑问是我应该在数据库中使用收缩选项的场景是什么。
我从未见过有人说它有用的场景。收缩总是邪恶的吗?
DBA...请对我温柔一点,我是一个“新手”SQL Server DBA,因为我公司的 DBA 已经辞职而我们还没有找到他的替代者,所以被迫投入使用。
先说我的情况:
我应该将网络应用程序从新加坡的服务器“转移”到印度尼西亚的(一对)新建服务器。不幸的是,新加坡数据库服务器运行的是 SQL Server 2005 Express Edition,而新服务器运行的是 SQL Server 2008 R2。更糟糕的是,网络应用程序的开发人员不再支持我们(我们实际上是在使用最新版本的网络应用程序)*。
我计划在 SQL2008R2 上创建一个新实例。
我有几个问题一直困扰着我:
我如何找出新加坡服务器上安装了哪些“功能”(例如,报告服务、复制等)?
如何确保完整备份(数据库和存储过程以及其他相关花絮)?
我注意到有几个存储过程(不是很多,我在“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 年以后)的基线数据,从中我可以获得所有信息和警报。
截至目前,我想捕获有关以下计数器的信息:
磁盘上的可用空间
可用的数据库文件和日志空间
等待统计
CPU 和内存计数器
如果需要,是否有任何免费工具可以参考和修改,或者任何有用的文章可以帮助我进行设置?
到目前为止,我指的是 SQLServerCentral.com 上 Erin Stellato 的文章。
任何帮助将不胜感激。
我有一个现有的 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 故障转移群集上的 TempDB?它在 2012 年受支持,但我们的集群是 SQL 2005。它运行的应用程序不能升级到 2012。
如果 SSD 驱动器在两台服务器上位于相同的本地路径上,它不会在故障转移时重建 TempDB 吗?集群不会识别操作系统识别的任何驱动器吗?或者还有其他需要考虑的问题。
我意识到微软不会支持它,但性能提升会很棒。我们在该集群上的 TempDB 是使用最多的数据库,我们无法更改它运行的应用程序中的任何代码。
我需要在 Windows 8 Home Edition x64 上安装 SQL Server 2005 Express。
但我收到兼容性错误!
我尝试过 SQL Server 2005 的 SP1、SP2、SP3。
Visual Studio 2008 工作正常。
有什么建议?
我接管了一个旧网站。长话短说,托管计算机的人备份所有数据库文件,但没有备份维护计划(例如,他们实际上是从磁盘备份文件,因此不会发生截断)。
恢复模式为FULL (SQL Server 2005)。
这有点像“一根绳子有多长”的问题,但只需要一个棒球场数字来说明截断需要多长时间:
BACKUP LOG databasename WITH TRUNCATE_ONLY
Run Code Online (Sandbox Code Playgroud)
60Gb 日志(机器是合理的英特尔 4 核 2.5Ghz 8Gb 机器(不是 SSD 驱动器))可能需要几分钟、几小时或几天?
我有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 ×10
sql-server ×7
backup ×1
clustering ×1
delete ×1
hardware ×1
index ×1
migration ×1
shrink ×1
t-sql ×1
tempdb ×1
truncate ×1
windows-8 ×1