使用 SQL Server Management Studio 从 table 创建前 100 个值的脚本

Create Script for top 100 values from a table with SQL Server Management Studio

我想用 SQL Server Management Studio 只为 table 中的值生成一个脚本。我只想要前 100 个。我已经找到了一种通过转到任务 -> 生成脚本来编写所有脚本的方法...

我只选择了数据,但 returns 整个 table:

我只需要前 100 行。有办法实现吗?

谢谢!

如果您想在第一步中为前 100 个记录集生成一个 INSERT 脚本,然后在第二步中执行生成的脚本,您可以试试这个:

DROP TABLE IF EXISTS #source;
DROP TABLE IF EXISTS #target;

CREATE TABLE #source ( value1 INT, value2 VARCHAR(100) );
CREATE TABLE #target ( value1 INT, value2 VARCHAR(100) );

INSERT INTO #source
VALUES (10, 'A100'), (10, 'A101'), (10, 'A102'), (10, 'A103'), (20, 'B100'), (20, 'B101')

-- STEP 1: GENERATE SCRIPT

SELECT TOP 3 sql = 'INSERT INTO #target(value1, value2) VALUES' + '(' + CAST(value1 AS VARCHAR(100)) + ', ''' + value2 + ''');'
FROM #source
ORDER BY value2 DESC

-- STEP 2: EXEC GENERATED SCRIPT

INSERT INTO #target(value1, value2) VALUES(20, 'B101');
INSERT INTO #target(value1, value2) VALUES(20, 'B100');
INSERT INTO #target(value1, value2) VALUES(10, 'A103');

-- RESULT:

SELECT * FROM #target;

如果您要处理很多列,转换和重新转换为 VARCHAR 可能会让人精疲力尽。 如果不需要创建临时脚本,这样会更容易:

INSERT INTO #target(value1, value2)
SELECT TOP 3 value1, value2 FROM #source;