问题标签 [sql-server-2005]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
28440 浏览

sql - 如何监控 SQL Server 2005 上执行的 sql 语句

在我的一个项目中,针对 SQL Server 执行的 SQL 语句由于某种未知原因而失败。一些代码已经在生产中使用,因此调试它不是一件容易的事。因此,我需要一种方法来查看数据库本身使用了哪些 SQL 语句,因为这些语句是由项目在运行时生成的,并且在满足某些条件时可能会出现缺陷。

因此,我考虑了监控收到的报表并检查自己是否发现任何缺陷的可能性。

该数据库在 SQL Server 2005 上运行,我使用 SQL Server Management Studio Express 作为操作数据库的主要工具。所以我的问题是,最好的方法是什么?

0 投票
10 回答
32546 浏览

sql - SQL查询获取最新价格

我有一张表,其中包含 MS SQL 2005 表中许多不同“事物”的价格。每件事情每天有数百条记录,不同的事情在不同的时间获得价格更新。

我需要获取一组物品的今天最新价格。下面的查询有效,但我得到了数百行,我必须遍历它们并且只提取每个 ThingID 的最新行。我如何(例如通过 GROUP BY)说我想要每个 ThingID 的最新版本?还是我必须使用子查询?

更新:为了隐藏复杂性,我将 ID 列放在一个 int 中。在现实生活中,它是 GUID(而不是顺序类型)。我已经更新了上面的表 def 以使用 uniqueidentifier。

0 投票
1 回答
352 浏览

sql-server-2005 - sql 2005 角色

如果我需要登录名才能创建数据库,并创建其他登录名并根据这些登录名将用户添加到我创建的数据库中,我应该赋予 sql 登录名什么角色?这是 sql 2005。

0 投票
4 回答
64288 浏览

sql-server-2008 - 我可以将 SQL Server Management Studio 2005 用于 2008 DB 吗?

我希望使用 Management Studio 2005 管理 SQL Server 2008 数据库。原因是我们的服务器是 64 位机器,而我们只有 64 位版本的软件。

这可能吗?

使用 Management Studio 2008 管理 SQL Server 2005 数据库怎么样?

0 投票
3 回答
14301 浏览

sql - DELETE 语句在 SQL Server 上挂起,原因不明

编辑:已解决,桌子上有一个带循环的触发器(请阅读下面我自己的答案)。


我们有一个简单的删除语句,如下所示:

这只是挂起,没有超时,没有任何东西。

我们查看了执行计划,它包含对相关表的许多查找,以确保没有外键会导致删除,但我们已经验证了这些其他表中没有任何行引用该特定行。

此时没有其他用户连接到数据库。

我们已经针对它运行了 DBCC CHECKDB,它报告了 0 个错误。

查看查询挂起时的结果sp_whosp_lock我注意到我的 spid 有很多 PAG 和 KEY 锁,以及偶尔的 TAB 锁。

该表有 1.777.621 行,是的,pk 是主键,所以它是基于索引的单行删除。执行计划中没有表扫描,虽然我注意到它包含一些说Table Spool (Eager Spool)的东西,但是说 Estimated number of rows 1。这实际上是变相的表扫描吗?它只说它查看主键列。

在表上尝试了 DBCC DBREINDEX 和 UPDATE STATISTICS。两者都在合理的时间内完成。

不幸的是,此特定表上有大量索引。它是我们系统中的核心表,包含大量列和引用,包括传出和传入。确切的数字是 48 个索引 + 主键聚集索引。

我们还应该看什么?

还要注意这个表以前没有这个问题,今天突然出现这个问题。我们还有许多具有相同表设置的数据库(客户数据库的副本),它们的行为与预期一样,只是这个有问题。

0 投票
3 回答
14876 浏览

sql-server-2005 - 用户无权运行 DBCC DBREINDEX

我在 SQL Server 2005 中收到以下错误消息:

为了运行命令,我必须赋予用户哪个最低角色?

0 投票
3 回答
45178 浏览

sql - 如何为 SQL Server 登录编写密码更改脚本?

正如标题所说,我需要更改现有 sql server 登录的密码,我想通过 sql 脚本来完成。

0 投票
4 回答
852 浏览

sql-server-2005 - 从 .NET 应用程序到 SQL Server 的偶尔缓慢的调用

我在 SQL Server 中有一个表,它是从仍在生产中的遗留系统继承而来的,该系统根据以下代码构建。我创建了一个 SP 来查询表,如表创建语句下方的代码中所述。我的问题是,通过 Enterprise Library 4 和 DataReader 对象从 .NET 到此 SP 的调用偶尔会很慢。SP 通过数据层中的循环结构调用,该结构指定进入 SP 以填充用户对象的参数。值得一提的是,不会在每次通过循环结构时都进行慢速调用。它通常会在一天或更长时间的大部分时间里都很好,然后开始展示,这使得调试变得非常困难。

有问题的表包含大约 500 万行。例如,缓慢的调用将需要长达 10 秒的时间,而快速的调用平均需要 0 到 10 毫秒。我在慢速调用期间检查了锁定/阻塞事务,没有找到。我在数据层创建了一些自定义性能计数器来监控调用时间。从本质上讲,当性能很差时,这对那个电话来说真的很糟糕。但是当它很好时,它真的很好。我已经能够在几台不同的开发人员机器上重现该问题,但不能在我们的开发和暂存数据库服务器上重现,这些服务器当然具有更强大的硬件。通常,通过重新启动 SQL Server 服务可以解决问题,但并非总是如此。表上有我正在查询的字段的索引,但是有比我想要的更多的索引。但是,由于它可能对遗留系统产生影响,我不愿删除任何索引或玩具。以前有没有人遇到过这样的问题,或者您有解决方法的建议吗?

0 投票
2 回答
1709 浏览

sql-server-2005 - Sql Server 2005 服务的最低权限集是多少?

最佳实践建议不要安装 Sql Server 以作为 SYSTEM 运行。您需要为其创建的用户帐户提供的最低限度是多少?

0 投票
2 回答
2236 浏览

sql - 在一个事务中更新架构和行,SQL Server 2005

我目前正在更新一个遗留系统,该系统允许用户指定其中一个表的部分架构。用户可以通过此界面在表中创建和删除列。这个遗留系统使用 ADO 2.8,并使用 SQL Server 2005 作为其数据库(在尝试对这头野兽进行现代化改造之前,您甚至不想知道它使用的是什么数据库……但我离题了。=))

在同一编辑过程中,用户可以定义(和更改)可以存储在这些用户创建的字段中的有效值列表(如果用户想要限制字段中可以包含的内容)。

当用户更改字段的有效条目列表时,如果他们删除了其中一个有效值,则允许他们选择一个新的“有效值”来映射其中包含此(现在无效)值的任何行,以便它们现在再次具有有效值。

在查看旧代码时,我注意到它极易使系统进入无效状态,因为上述更改不是在事务中完成的(因此,如果其他人在上述过程的中途出现并进行了他们的自己的变化......好吧,你可以想象可能导致的问题)。

问题是,我一直试图让它们在单个事务下更新,但是每当代码到达它更改该表架构的部分时,所有其他更改(更新行中的值,无论是在架构更改与否的表......它们甚至可以是完全不相关的表)在事务中构成的那一点似乎被静默删除。我没有收到表明它们已被删除的错误消息,并且当我最后提交事务时没有引发错误......但是当我去查看应该在事务中更新的表时,只有新列在那里。所做的任何非架构更改都不会保存。

到目前为止,在网上寻找答案被证明是浪费几个小时......所以我转向这里寻求帮助。有没有人尝试过通过 ADO 执行事务,既更新表的架构又更新表中的行(无论是同一个表还是其他表)?不允许吗?是否有任何文档可以在这种情况下有所帮助?

编辑:

好的,我做了一个trace,这些命令被发送到数据库中(括号中的解释)

(我不知道这里发生了什么,看起来它正在创建一个临时存储过程......?)

(检索包含用户生成字段的定义信息的表)

(我认为我的代码在这里遍历它们的列表,获取当前信息)

(这似乎是我输入定义的修改数据的地方,我遍历每个并更新自定义字段本身的定义中发生的任何更改)

(这是我的代码在此保存开始之前通过界面删除删除的地方] ...据我所知,这也是在此事务期间实际发生的唯一事情)

(现在,如果任何定义被更改为需要更改用户创建的列的属性或需要添加/删除列上的索引,则在此处完成,并为任何行提供默认值给定列还没有值...请注意,据我所知,当存储过程完成时,实际上没有发生这种情况。)

p>

(关闭交易...?)

p>

经过上面的所有这些,只发生了该列的删除。事务中它之前和之后的所有内容似乎都被忽略了,并且 SQL 跟踪中没有消息表明事务期间出现了问题。