我在 sql server 2005 上有一个大数据库。缩小数据文件后,数据库仍然很大:大约 9 GB。
以下是来自 sp_spaceused 的一些数据:
exec [dbname].dbo.sp_spaceused
reserved |data kb |index_size |unused |
10221976 KB |849240 KB |9367456 KB |5280 KB |
Run Code Online (Sandbox Code Playgroud)
我可以用吗
DBCC SHRINKFILE(logic_name_dat, 1000(Mb))
Run Code Online (Sandbox Code Playgroud)
不会丢失该数据库上的用户数据?
我假设 CU4 将是 SQL 2005 的最后一次更新。我们打算在 2005 上停留一段时间。有谁知道(或者可能维护了一个列表)2005 年仍然存在哪些错误?我认为这些主要是在 2008 年和 2012 年修复的错误,但在 2005 年仍然存在,即使在应用 SP4 CU4 之后。
如果我们停留在 2005 年,似乎我们应该跟踪这个......
可能的重复:
确定架构更改是如何发生的?
我有一个存储过程,它在昨晚深夜修改过,早上大部分时间都在跟踪问题回到这个变化。
基本上没有人承认这一变化,所以我试图弄清楚如何找到谁修改了这个存储过程。我已经在网上研究过如何找到它,但看起来这是不可能的?
我想如果有人知道如何做到这一点,那就是这里的某个人。
我确实尝试过这个。:
“在 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
在此处运行 SQL Server Express 2005。我们正在创建几个程序,这些程序主要通过 C# (.NET) 使用服务器管理对象 (SMO) 在数据库上运行备份。我们有不同的进程可以在不同的时间调用备份。
如果将备份转储到不同位置,同时运行两个完整备份是否有任何问题?这些进程彼此之间非常独立,同步它们需要一些工作。
我有一个带有生效日期、停止日期和七个布尔字段的时间表表,指示使用该时间表的星期几。这是一个示例:
effDate discDate opMon opTue opWed opThu opFri opSat opSun
---------- ---------- ----- ----- ----- ----- ----- ----- -----
2012-10-28 2012-11-27 0 1 0 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
我需要做的是为每个日期范围选择一个包含各个日期的表格,其中每条记录都是该范围内的一个日期。对于上面的数据集,它看起来像这样:
dates
----------
2012-10-28
2012-10-30
2012-11-04
2012-11-06
2012-11-11
2012-11-13
2012-11-18
2012-11-20
2012-11-25
2012-11-27
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我似乎无法将我的大脑围绕在这个问题上。
我正在将一个旧的、半损坏的 ASP.NET/SQL Server 应用程序移植到 PHP/PostgreSQL。我面临的折磨^H^H^H^H^H^H^H^H挑战是报告是由一系列二进制可执行文件完成的,因为显然我是一个坏人,需要受到惩罚。因此,我无权访问查询以移植它们。
那很好,我想。我可以运行查询分析器并记录 在夜间报告生成期间发生的所有SELECT 语句。
但事实证明,最初的开发人员通过运行不包含 Profiler 的 SQL Server Workgroup Edition 降低了成本。
我正在考虑使用触发器来获取这些查询,但我认为我不能在SELECT语句上使用触发器。逆向工程查询是可能的,但考虑到数据库的复杂性(多个,通常是递归的,表之间的关系,同名表的负载,其中有几个表多年没有更新,等等)我更喜欢有规范的查询参考。
我应该怎么做?有没有办法让 Profiler 在 Workgroup Edition 中运行?有没有办法在没有分析器的情况下启用查询日志记录?我并不担心性能,因为这个应用程序并没有得到特别频繁的使用,而且它在比应用程序要求的两个尺寸更强大的机器上运行。
我在我的应用程序中启动以下命令:
WAITFOR (RECEIVE CONVERT(int, message_body) AS Message FROM MyQueue)
Run Code Online (Sandbox Code Playgroud)
当我运行 `sp_who2 active' 时,我得到 Status=SUSPENDED 和 Command=DELETE

注意:移自 StackOverflow。
我需要在一段时间内测试 SQL 代理,因此需要经常将系统时钟更改为未来(并返回)......别担心它只是我的本地机器而不是服务器:-)
问题是当我再次将它设置回当前日期时间时,下一次运行日期仍然会听到未来的时间。
例如,如果我将时钟设置为未来,并且作业设置为每分钟运行一次,并且上次运行是在 11/01/2080 01:01:00,那么下次运行是 11/01/2080 01:02: 00,即使我把时钟调回到现在。
可以理解,这是 SQL Server 的正常行为。有没有办法轻松重置下一次运行日期?
我试过手动运行作业,但它对下一次运行时间没有影响。
我目前在 Windows 2003 服务器机器上运行 SQL Server 2005 标准版。
我已经转到服务器的属性并确认登录审核设置为失败和成功登录。出于某种原因,当我知道两者都有登录时,SQL Server 日志中的登录失败或成功中没有任何内容。
我已经找到了原因,但没有提出任何有用的东西,所以我希望这里有人能给我一些指导。这适用于我的其他 SQL Server,所以我知道在哪里寻找结果,但那里没有。
我需要有关如何从从另一个相同数据库服务器获取的文件组备份恢复数据库中的文件组的指导。是否可以通过为文件组运行恢复数据库来恢复文件组。
我试图从备份中恢复文件组,如下所示
RESTORE DATABASE <DBName > FILEGROUP = 'MFG12' FROM DISK = 'E:\MFG12.bak'
WITH RECOVERY
Run Code Online (Sandbox Code Playgroud)
备份集保存现有DBNAME数据库以外的数据库的备份。
当我试图恢复到同一个 DB 时,恢复工作完美,
Processed 840976 pages for database 'DB', file 'MFG12_File' on file 1.
RESTORE DATABASE ... FILE=<name> successfully processed 840976 pages in 59.375 seconds
(110.654 MB/sec).
Run Code Online (Sandbox Code Playgroud)
当我针对文件组的分区运行 Select 查询时。它抛出错误
One of the partitions of index '' for table 'xyz'
(partition ID 72057594656129024) resides on a filegroup ("MFG12")
that cannot be accessed because it is offline, restoring,
or defunct. This may limit …Run Code Online (Sandbox Code Playgroud)