标签: sql-server-2008

SQL Server 2008 R2 SP1 - Tempdb“可用空间”显示负值

请帮忙,因为这个问题让我发疯......

Tempdb有四个数据文件和一个日志文件。它们都位于同一个专用驱动器上。

当我tempdb在 SQL Server Management Studio (SSMS) 中右键单击以查看属性 --> 常规...我看到“大小”为 ~65000 MB,“可用空间”为 ~64000 MB。但是,当我尝试通过 GUI 缩小文件时,我看到“当前分配的空间”没有改变并且仍然显示初始大小。

这也是“可用空间”显示为负数的地方。到目前为止,我找到的唯一解决方法是重新启动 SQL Server 以刷新tempdb,但我不能继续这样做。

有没有人遇到过这个问题,并知道它的根本原因/永久解决方案吗?

sql-server-2008 sql-server tempdb

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

SQL Server 2008:如何在 SQL Server 代理作业中的一个步骤失败但整体作业成功时发送电子邮件

我有一个包含 6 个步骤的 SQL Server 作业。无论前四个步骤是否失败,都必须运行步骤 5 和 6,因此如果前四个作业失败,则将它们设置为跳到步骤 5。

但是,如果第 5 步和第 6 步成功,则整个工作被视为成功。我为作业失败设置了电子邮件通知,但如果前四个步骤中的任何一个由于整体作业被视为成功而失败,我将不会收到电子邮件。我希望这种情况发生。

将前四个步骤拆分为单独的工作并不理想,因为它们必须在第 5 步和第 6 步开始之前完成。

请任何人都可以给我建议来解决这个问题,以便:

  1. 即使步骤 1-4 中的任何一个失败,步骤 5 和 6 也会运行。
  2. 步骤 5 和 6 必须在步骤 1-4 完成之前开始。
  3. 当步骤 1-4 中的任何一个失败时,会发送一封电子邮件通知,指示失败的步骤。

非常感谢您的帮助。

sql-server-2008 sql-server

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

删除一百万条记录后该怎么办

我们正在我们的系统中实施一项新功能,这将导致smallint每晚从表中清除大约一百万条记录(每条记录都很小,基本上是一个 GUID、一个日期和四个字段)。基本上它是一个缓存表,一旦数据存在 7 天,我们就会:

DELETE FROM scheduleCache WHERE schDateCreated < '2013-08-26

这将在每晚凌晨 1 点运行,每次运行将清除大约一百万条记录。

对于这样的桌子,我应该注意或做些什么吗?我应该把什么属性放在桌子上,或者我应该定期运行什么程序来“清理”?我以前从未处理过这样的桌子。

该表有一个聚集索引(GUID + 一个smallint字段),我们有每周一次的索引重建,每周日早上运行。

sql-server-2008 delete

7
推荐指数
1
解决办法
677
查看次数

在单个结果中连接一对多字段?

假设我有以下查询:

SELECT * 
FROM AppDetails, AppTags 
WHERE AppDetails.AppID = '1' 
  AND AppDetails.AppID = AppTags.AppID
Run Code Online (Sandbox Code Playgroud)

这给出了以下结果:

AppID    AppName        AppType    Tag
1        Application1   Utility    Test1
1        Application1   Utility    Test2
1        Application1   Utility    Test3
Run Code Online (Sandbox Code Playgroud)

如何修改查询以返回如下内容:

AppID    AppName        AppType    Tags
1        Application1   Utility    Test1,Test2,Test3
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 join syntax group-concatenation

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

将所有主键值增加 1

EmployeeID如果它是主键,我如何将所有值加一?

sql-server-2008 database-design

7
推荐指数
2
解决办法
3349
查看次数

SQL Server 2008 数据库还原错误 - 无法打开备份设备 15105

我正在尝试从备份中恢复并收到以下错误

消息 3201,级别 16,状态 2,第 1 行
无法打开备份设备“Z:\FULL_BACKUP.bak”。操作系统错误 3(无法检索此错误的文本。原因:15105)。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 异常终止。

我在 SQL Server 中使用的代码如下(我也尝试使用对话框屏幕并得到相同的结果)

RESTORE DATABASE DEX
FROM DISK = 'Z:\FULL_BACKUP.bak'
WITH MOVE 'Decri' TO 'E:\Test\DEX.mdf',
MOVE 'Decri_log' TO 'E:\Test\DEX.LDF'
Run Code Online (Sandbox Code Playgroud)

可能值得注意的是,“FULL_BACKUP”是由同一个 SQL 服务器创建的,没有任何问题(所以我假设服务器有权限)。

驱动器 Z 是一个网络路径,所有域用户都可以对其进行“完全访问”。

完整备份为 200Gb

驱动器 E(本地)有 500Gb 可用空间

任何帮助,将不胜感激。

sql-server-2008 sql-server backup

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

即使在服务器端启用了强制加密,MS SQL Server 也接受非 SSL 连接

我在我的 SQL Server 上强制加密。我的意图是拒绝任何不使用 SSL 进行连接的客户端连接。我在正确的轨道上吗?

这是我的详细步骤:

  • makecert -r -pe -n "CN=slc02xla.company.com" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel 加密提供程序" -sy 12 c:\my.cer
  • 我将相同的证书导入受信任的根证书颁发机构商店
  • 在 SQL Server 配置管理器中,展开 SQL Server 网络配置,右键单击 的协议,然后选择属性。
  • 在证书选项卡上,从证书下拉菜单中选择所需的证书,然后单击确定。
  • 在“标志”选项卡上,在“强制加密”框中选择“是”,然后单击“确定”关闭对话框。
  • 重新启动 SQL Server 服务。

我还缺什么吗?

sql-server-2008 sql-server ssl

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

Sql Server 修复用户

我使用以下命令在我的数据库中创建一个用户:

CREATE USER Test WITHOUT LOGIN
Run Code Online (Sandbox Code Playgroud)

我用测试名称创建了一个登录名。

我想将测试用户与测试登录联系起来。

当我使用以下命令时:

EXEC sp_change_users_login 'Update_One', 'Test', 'Test'
Run Code Online (Sandbox Code Playgroud)

SQL Server 引发了以下错误:

Msg 15291, Level 16, State 1, Procedure sp_change_users_login, Line 114
Terminating this procedure. The User name 'Test' is absent or invalid.
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令时:

ALTER USER Test WITH LOGIN = Test
Run Code Online (Sandbox Code Playgroud)

SQL Server 引发波纹管错误:

Msg 33016, Level 16, State 1, Line 2
The user cannot be remapped to a login. Remapping can only be done for users that were mapped to Windows or SQL logins. …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012 logins

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

SQL Server 服务名称和实例名称之间有任何关系吗?

我的 SQL Server 的实例名称是SQLEXPRESS并且 SQL Server 服务名称看起来像MSSQL$SQLEXPRESS。实例名称和服务名称之间有什么关系吗?我正在尝试按名称检查 SQL Server 服务状态,我想知道其他计算机上的 SQL Server 服务名称可以不同吗?

sql-server-2008

7
推荐指数
2
解决办法
5500
查看次数

将实时 SQL Server 数据库移动到新服务器

我有一台运行 SQL Server 2008 Web 版的生产服务器,它必须保持 24x7 全天候运行,几乎没有停机时间,现在是我们转向更先进的服务器硬件的时候了,也是转向 SQL Server 的好机会2012年企业。

现在我的问题是,如何在不关闭数据库的情况下进行此迁移?例如在两台服务器之间设置一些东西作为复制左右,所以我在两台服务器上都有完全相同的数据库,然后我可以将主要服务关闭 1 分钟,更改数据库连接的 IP 地址从旧服务器到新服务器,我确信新服务器具有与旧服务器相同的副本。

我不能采用备份/恢复方法,因为它需要的时间超过可接受的时间,这就是为什么我需要一些东西来保证完全相同的数据库,就像我在做备份/恢复一样。5 分钟可能是可承受的最大停机时间。

数据库大小约为 100GB。

新服务器运行2012 Enterprise,旧服务器运行2008 Web

我可以异常地归档数据库中的记录,并将其大小最小化到 20GB 之类。

我可以选择将我的 SQL Server 2008 Web 版升级到企业版,如果这有助于更多解决方案,比如复制?

replication sql-server-2008 sql-server migration sql-server-2012

7
推荐指数
1
解决办法
2925
查看次数