标签: sql-server-2008

SQL Server - 恢复中

在我的 SQL 2008 R1 数据库中上传了几十万行,今天早上在 SQL Management Studio 中的数据库名称旁边出现了一条“正在恢复”消息。

我试过 DBCC CheckDB,它返回 CHECKDB found 0 allocation errors and 0 consistency errors in database 'DBName'. DBCC execution completed. If DBCC printed error messages, contact your system administrator. 当我检查 sys.databases 中的状态 (state_desc) 时,它返回ONLINE. 事实上,sys.databases 表中没有任何东西看起来与众不同。

但是,我无法摆脱“正在恢复”消息,而且我不想重新启动。有什么方法可以告诉我这种情况会持续多久,或者我应该检查其他任何问题吗?

sql-server-2008 sql-server

5
推荐指数
1
解决办法
9562
查看次数

SQL Server 2008 中的分区关键问题

我们计划基于整数列对我们的数据库使用表分区。我已经在 MSDN 上阅读了它,网址http://msdn.microsoft.com/en-us/library/ms190787.aspx并且有一些疑问。

a) 是否要求分区键是主键的一部分?即使它不是必需的,如果它是主键或聚集索引的一部分,它是否仍然有任何好处?

b) 在我们的例子中,我们将对带有非分区主数据的分区表执行 JOIN 操作。我会失去分区消除所获得的性能吗?一般来说,如果 JOIN 操作中使用的任何表是未分区的,那么我会失去分区的好处吗?

c) 在分区键上的 JOIN 条件中添加过滤条件是否有助于分区消除?或者只有分区列上的 WHERE 子句中的过滤条件用于分区消除?

d) 分区键应该是非聚集索引的一部分吗?

提前致谢。

sql-server-2008 sql-server sql-server-2008-r2

5
推荐指数
1
解决办法
1601
查看次数

选择 TOP @N,其中 @N 是另一个查询中的变量

我正在构建关于服务器硬件预测的报告,但我被困在这里。

我有一个查询可以正确返回服务器上安装的 HDD 的数量,并将该数字存储到一个名为 的变量中@OtherHDDs,它是一个INT.

我现在需要这样做......

Select top @OtherHDDs.... 
from ...
Run Code Online (Sandbox Code Playgroud)

我该如何正确地做到这一点?

sql-server-2008 sql-server

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

在 SQL Server 备份上:消息 3271,级别 16,状态 1,服务器行 1 文件上发生不可恢复的 I/O 错误

我正在尝试备份一个相当大的数据库,但不断收到此错误:

Msg 3271, Level 16, State 1, Server {Server Name}, Line 1 A
nonrecoverable I/O error occurred on file "{Backup File Location}:"
112(failed to retrieve text for this error. Reason: 1815). Msg 3013,
Level 16, State 1, Server {Server Name}, Line 1 BACKUP DATABASE is
terminating abnormally.
Run Code Online (Sandbox Code Playgroud)

有人碰巧知道这是什么吗?

sql-server-2008 sql-server backup

5
推荐指数
1
解决办法
3626
查看次数

移动 SQL Server 数据库的困难

我正在尝试从 SQL Server 2008 R2 Express 升级到 Developer。

我的计划是删除 Express 版,然后安装 Developer 版。我有一个数据库需要转移到新安装中。

为了准备,我将数据和日志文件的物理副本复制到桌面,并在桌面上执行了完整备份。然后我在 Management Studio 中分离了数据库。

为了在删除 Express 之前进行恢复,我.mdf在分离后物理移动Windows 资源管理器中的文件和日志文件,但我没有看到这些文件。

我想也许没有必要,我可以从备份中恢复(再次,仍然使用 Express),我收到空间不足的错误。有趣的是,我在桌面上没有看到备份文件。我确定我仔细指定了它。我尝试了 B 计划,将.mdf复制到桌面的文件附加到桌面,然后我得到

CREATE FILE 遇到操作系统错误 2(系统找不到指定的文件)。

这里的任何帮助都是巨大的。谢谢。

sql-server-2008 sql-server

5
推荐指数
1
解决办法
258
查看次数

找出用于给定存储过程的设置

作为我上一个问题后续

是有办法需要找出什么ANSI_NULLSANSI_PADDING等设置里,当一个给定的过程中我创建了数据库?

似乎我的客户有几个存储过程和一些已“调整”的触发器 - 但不幸的是,使用了这些数据库设置的“错误”集。我可以找出哪些procs 和触发器受到影响,还是需要使用正确的设置重新创建所有这些?

sql-server-2008 sql-server stored-procedures

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

当镜像服务器离线(短时间)时会发生什么?

假设我们有一个主体服务器、一个镜像服务器(用作故障转移备份的服务器)和一个见证服务器。

如果我要让镜像服务器(而不是主体)脱机一小段时间(假设为五分钟),这有关系吗?这会打破镜子吗?在使服务器脱机之前,我需要做什么(例如暂时关闭镜像数据库上的镜像)?

网上有很多资源可以解释当本金倒闭时需要发生什么,但我找不到关于这种情况的任何信息。

sql-server-2008

5
推荐指数
2
解决办法
2259
查看次数

某个日期范围内每个日期在给定日期打开的订单总数

这个问题类似于Running total with count? ,但请允许我进一步解释这个问题。

我使用的是 SQL Server 2008,因此 Aaron Bertrand 描述的游标选项在速度方面似乎是最有前途的。

不过,这里的不同之处在于我必须考虑单个项目的两个日期。因此,给定订单表中的 OrderID 项,OrderID 具有 Opened Date 和 Closed Date。Opened Date 总是填充的,但 Closed Date 可以是NULL

OrderID  OpenedDate    ClosedDate
654554    12/1/2011     5/4/2012
678451    12/4/2011     3/2/2012
679565    12/8/2011     5/21/2012
701541    5/23/2012     NULL
...
Run Code Online (Sandbox Code Playgroud)

我需要 - 有效地 - 获取在日期范围内的任何给定日期有多少订单具有我们可以称为“打开”状态的状态。日期范围可能跨越几年。(是的,我确实有一个连续日期的参考表。)

Date         CountOfOpenOrders
12/1/2011    175
12/2/2011    178
12/3/2011    195
12/4/2011    192
12/5/2011    191
...
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 t-sql

5
推荐指数
1
解决办法
4101
查看次数

谁更改/修改了 SSMS 2005 或 2008 中的存储过程?

可能的重复:
确定架构更改是如何发生的?

我有一个存储过程,它在昨晚深夜修改过,早上大部分时间都在跟踪问题回到这个变化。

基本上没有人承认这一变化,所以我试图弄清楚如何找到谁修改了这个存储过程。我已经在网上研究过如何找到它,但看起来这是不可能的?

我想如果有人知道如何做到这一点,那就是这里的某个人。

我确实尝试过这个。:

“在 SSMS 中,右键单击服务器名称,选择报告/标准报告/架构更改历史记录。” --> 这没有给我任何东西,但我至少能够运行它,这为我提供了时间。

select name, create_date, modify_date
from sys.procedures
where name = 'mystoredprocedure'
Run Code Online (Sandbox Code Playgroud)

感谢您的任何建议或方向。

sql-server-2005 sql-server-2008 sql-server stored-procedures

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

授予用户权限以恢复数据库并在 sql server 中访问该数据库?

我想创建一个具有服务器角色的用户db_createdb_restore并将db_owner属于该数据库。但是只有1个服务器角色可用,即db_creator,可以创建数据库,也是db_owner那个。但是当我恢复另一个断开连接的数据库备份时,即无法访问。

在 sql server 中,有什么方法可以创建和恢复数据库并将dbowner属于该数据库。我不想sysadmin向该用户授予服务器角色。

请帮帮我。

sql-server-2008 sql-server

5
推荐指数
1
解决办法
8021
查看次数