从 SQL Server 中的每个表中只复制一条记录
Posted
技术标签:
【中文标题】从 SQL Server 中的每个表中只复制一条记录【英文标题】:Copy only single record from each table in SQL Server 【发布时间】:2018-05-16 16:43:17 【问题描述】:我想将表从一个数据库/服务器复制到另一个数据库/服务器。要求是,在将表复制到目的地时,我只需要每个表中的一条记录(作为示例记录)。
已尝试过数据迁移选项,但没有一个提供限制记录数的选项。
任何建议将不胜感激。谢谢。
【问题讨论】:
从tableA中选择top 1 * ? 请edit您的问题显示the code you have so far。我们这里的大多数人都很乐意帮助你提高你的手艺,但作为短期无薪编程人员不太乐意。以minimal reproducible example 向我们展示您的工作、您期望的结果和您得到的结果,我们将帮助您解决问题。重新阅读How to Ask可能会有所帮助。 嗨,我对此没有任何疑问。我尝试的是使用导入/导出或通过 SSIS 来执行它。但是在那里,他们可以选择结构或结构和数据。我正在寻找的是从每个表中复制结构和仅一条记录(单行)。 【参考方案1】:不确定这是否完全回答了问题,但这是一个开始
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'
这将为系统中的每个表(用户表)生成一个选择查询。
如果你需要执行语句,你可以试试这个(但如果你有很多表不方便):
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
【讨论】:
以上是关于从 SQL Server 中的每个表中只复制一条记录的主要内容,如果未能解决你的问题,请参考以下文章