2016-10-03 3 views
-1

テーブルPersons (ID, Name, Address)とテーブルPersons_twin (ID, Name, Address)を持っています。Personsから全行をコピーします。SQLを使用して1つのテーブルから別のテーブルにデータ全体をコピーするためのストアドプロシージャ

データをコピーするための最短かつ最良の方法はどれですか?以下は私が試したコードですが、実行は起こっていません。あなたの提案は最も貴重です。ありがとうございました。

BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    INSERT INTO [dbo].[Persons_twin](ID, Name, Address) 
    VALUES(SELECT ID, Name, Address FROM [dbo].[Persons]) 
END 
+2

可能性のある重複した[SQL Serverのコピー1つのテーブルからすべての行を別のすなわち、複製テーブルに](http://stackoverflow.com/questions/2691441/sql-server-copy-all-rows-from-one-table-into-another-ie-duplicate-table) –

+0

VALUESは、特定の値の単一の行を挿入するためのものです。 SELECTと組み合わせる方法は無効です。どちらか一方を使用しますが、両方を使用することはできません。 –

答えて

0

両方のテーブルが同じ場合は、このクエリを使用できます。

INSERT INTO Persons_twin 
SELECT * FROM Persons 
+3

選択した列のリストや列のリストを挿入しないで回答を提案しないでください。これは、テーブルのいずれかに変更があったときに将来問題になる可能性があります。 –

2

values句を削除し、直接

INSERT INTO [dbo].[Persons_twin](ID, Name, Address) 
SELECT ID, Name, Address FROM [dbo].[Persons] 
0

selectクエリを使用あなたも作成することがあります第2テーブルオンザフライ。この場合、あなたは、テーブルの構造について気にする必要がありません:の

SELECT * INTO persons_twin FROM Persons 
+0

2番目の構文は 'SQL SERVER'で有効ですか? –

+0

こんにちは@Prdp、良いキャッチ!いいえそうではありません。詳細はこちら](https://msdn.microsoft.com/en-us/library/mt204041.aspx)私の答えを編集する... – Shnugo

関連する問題