下面的腳本將生成源數據庫中所有表都複製到另一個空數據庫1000條隨機記錄聲明這不是一個好主意。
請注意,「select * insert into ...」語句只有在目標表尚不存在時纔有效。
ORDER BY使用表的主鍵。
如果它有一個。
SELECT CONCAT('SELECT ',
'TOP 1000 ',
'* INSERT INTO ',
'[TargetDb]', -- replace with the name of the database you want to copy to
'.',QUOTENAME(t.TABLE_NAME),
' FROM ',QUOTENAME(t.TABLE_SCHEMA),'.',QUOTENAME(t.TABLE_NAME),
' ORDER BY ' + QUOTENAME(k.PrimaryKeyName),';'
) as InsertStatement
FROM INFORMATION_SCHEMA.TABLES t
LEFT JOIN (
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME as PrimaryKeyName
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(QUOTENAME(CONSTRAINT_SCHEMA) + '.' + QUOTENAME(CONSTRAINT_NAME)), 'IsPrimaryKey') = 1
) k ON (t.TABLE_SCHEMA = k.TABLE_SCHEMA and t.TABLE_NAME = k.TABLE_NAME)
WHERE t.TABLE_TYPE = 'BASE TABLE'
AND t.TABLE_SCHEMA = 'dbo' -- replace with the name of the source database you want to copy from
ORDER BY t.TABLE_SCHEMA, t.TABLE_NAME;
這似乎是一個好主意。現在,怎麼了?你嘗試了什麼,但沒有奏效?您應該[編輯]讓我們知道1)您嘗試了什麼2)結果是什麼3)爲什麼您的結果不被您接受 – Will
您是否需要考慮外鍵? –
你可以看看[這裏](http://stackoverflow.com/questions/8668511/how-can-i-select-top-500-rows-from-table1-and-insert-them-to-table2) 。這會幫助你。 –