小编mar*_*ark的帖子

是否可以在 SSMS 的对象资源管理器中过滤数据库列表?

我知道如何过滤表列表 - 使用过滤器图标。但是,选择数据库节点时,禁用此图标。

不过,我想知道是否有可能。

sql-server ssms

11
推荐指数
1
解决办法
5823
查看次数

Sql Server:一个看似奇怪的BEGIN TRAN行为——COMMIT

首先创建两个表:

CREATE TABLE xyz (Id INT)
CREATE TABLE abc (Id INT)
Run Code Online (Sandbox Code Playgroud)

请注意以下 SQL 代码:

DELETE FROM abc
BEGIN TRAN
EXEC('
INSERT INTO xyz VALUES (1),(2)
DECLARE @x INT = (SELECT Id FROM xyz)
')
INSERT INTO abc VALUES (1)
COMMIT

SELECT * FROM abc
Run Code Online (Sandbox Code Playgroud)

运行它会输出以下错误:

Msg 512, Level 16, State 1, Line 3
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

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

如果备份文件已重命名,如何将 SQL Server 数据库还原到自定义位置?

假设我有一个名为 SQL Server 的数据库bubu,并且相应的备份文件是bubu.bak.

如果我想使用自定义位置的后备存储恢复它,我使用以下 T-SQL 语句:

RESTORE DATABASE "bubu2" FROM DISK = N'C:\bubu.bak' WITH REPLACE, STATS = 10, 
    MOVE N'bubu' TO N'C:\custom\bubu.mdf', MOVE N'bubu_log' TO N'C:\custom\bubu.LDF'
Run Code Online (Sandbox Code Playgroud)

所以我有一个新的数据库bubu2,它恰好是bubu. 这里重要的是我假设备份包含逻辑文件bubububu_log,因为备份文件名为bubu.bak.

现在,假如有人重命名bubu.bakmumu.bak。这样做,打破了我的逻辑,因为现在我将尝试这个 T-SQL 语句:

RESTORE DATABASE "mumu2" FROM DISK = N'C:\mumu.bak' WITH REPLACE, STATS = 10, 
    MOVE N'mumu' TO N'C:\custom\mumu.mdf', MOVE N'mumu_log' TO N'C:\custom\mumu.LDF'
Run Code Online (Sandbox Code Playgroud)

当然,我失败了,因为mumu.bak不包含逻辑文件mumu并且mumu_log- 重命名备份文件不会重命名备份中包含的逻辑文件(当然)。

但是,如果备份文件被重命名,我该怎么做?

sql-server backup restore

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

标签 统计

sql-server ×3

backup ×1

restore ×1

sql-server-2012 ×1

ssms ×1