我想将表从一个数据库/服务器复制到另一个数据库/服务器。要求是,在将表复制到目的地时,我只需要每个表中的一条记录(作为样本记录)。
尝试了数据迁移选项,但没有一个选项可以限制记录数量。
任何建议将不胜感激。感谢。
答案 0 :(得分:2)
不确定这是否完全回答了问题,但这是一个开始
SELECT ' SELECT TOP 1 * FROM ' + QUOTENAME(s.NAME) + '.' + QUOTENAME(t.NAME) + '; '
FROM sys.tables t
JOIN sys.schemas s
ON t.[schema_id] = s.[schema_id]
WHERE t.type = 'U'
这将为系统中的每个表生成一个select查询(用户表)。
如果您需要执行这些语句,可以试试这个(如果您有很多表,则不方便):
DECLARE @sql nvarchar(max) = ''
SELECT @sql+=' SELECT TOP 1 * FROM ' + QUOTENAME(s.NAME) + '.' + QUOTENAME(t.NAME) + '; '
FROM sys.tables t
JOIN sys.schemas s
ON t.[schema_id] = s.[schema_id]
WHERE t.type = 'U';
Exec sp_executesql @sql;
其他解决方案是遵循this answer