我想用所有对象和数据备份SQL Server数据库,但所有表中的数据应限制为每个表100行.我可以很容易地在mysql中做到这一点,但在SQL Server中我不知道该怎么办?
您不能真正BACKUP DATABASE为此使用显式。但是你可以做这样的事情 - 但是请记住 - 正如我的评论 - 如果你依赖任何类型的数据完整性,这些数据的用途将是有限的,因为排序将是相对任意的,除非一切都是 1:1你碰巧对所有查询进行了神奇方便的排序,它只是一个庞大的数据大杂烩:
CREATE DATABASE copy_of_original;
GO
USE original_db;
GO
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'';
-- this assumes all tables are in `dbo` schema:
SELECT @sql = @sql + CHAR(13) + CHAR(10)
+ 'SELECT TOP (100) * INTO copy_of_original.dbo.'
+ QUOTENAME(name) + ' FROM dbo.' + QUOTENAME(name) + ';'
FROM sys.tables
WHERE schema_id = 1;
PRINT @sql;
-- EXEC sp_executesql @sql;
Run Code Online (Sandbox Code Playgroud)
完成此操作后,您可以备份copy_of_original- 但请记住,原始数据库中不会存在任何索引或约束,并且TOP将从每个表(或整个表)中选择任意一组 100 行,对于少于 100 行的小表)。
| 归档时间: |
|
| 查看次数: |
6356 次 |
| 最近记录: |