分区数据库还原问题
partitioned Database Restore issue
我在使用以下脚本恢复分区数据库时遇到问题。
我在数据库中有 7 个分区。
here is the code .
declare @Sql varchar(max)
SET @Sql = 'RESTORE DATABASE [NEWS]
FILE = ''DEMO'',
FILEGROUP = ''DEMO''
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE LOG [NEWS]
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak''
WITH RECOVERY
GO'''
EXEC (@Sql)
它显示的错误是“\”附近的语法不正确。
有人知道问题出在哪里吗?
GO
不是 T-SQL 命令,因此您不能将其包含在动态 SQL 脚本中。 GO 是由 SQL 服务器客户端工具解释的批处理分隔符。
这里不需要 GO 批处理分隔符或动态 SQL,所以我猜你问题中的 SQL 实际上是动态构建的。还有一些其他错误,例如代码中错误的引号。以下是更正后的版本。我认为您可能还需要将 NORECOVERY
添加到 RESTORE DATABASE
:
SET @Sql = 'RESTORE DATABASE [NEWS]
FILE = ''DEMO'',
FILEGROUP = ''DEMO''
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak''
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10;
RESTORE LOG [NEWS]
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak'';
';
我在使用以下脚本恢复分区数据库时遇到问题。
我在数据库中有 7 个分区。
here is the code .
declare @Sql varchar(max)
SET @Sql = 'RESTORE DATABASE [NEWS]
FILE = ''DEMO'',
FILEGROUP = ''DEMO''
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE LOG [NEWS]
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak''
WITH RECOVERY
GO'''
EXEC (@Sql)
它显示的错误是“\”附近的语法不正确。
有人知道问题出在哪里吗?
GO
不是 T-SQL 命令,因此您不能将其包含在动态 SQL 脚本中。 GO 是由 SQL 服务器客户端工具解释的批处理分隔符。
这里不需要 GO 批处理分隔符或动态 SQL,所以我猜你问题中的 SQL 实际上是动态构建的。还有一些其他错误,例如代码中错误的引号。以下是更正后的版本。我认为您可能还需要将 NORECOVERY
添加到 RESTORE DATABASE
:
SET @Sql = 'RESTORE DATABASE [NEWS]
FILE = ''DEMO'',
FILEGROUP = ''DEMO''
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak''
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10;
RESTORE LOG [NEWS]
FROM DISK = ''C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\DEMO_clone.bak'';
';