• 締切済み

insert した結果を insert する

SQLServerを使用してinsertした結果をinsertしたいのですが、そのクエリをどう書けばいいのか分からず困っています。(ちなみに1000行データを作成したいです) 具体的には下記のような内容です。 (1)注文テーブル[Id, 注文内容,注文個数,顧客Id←(2)のIdのことです)] (2)顧客テーブル[Id, 名前,住所] テストデータを作成するために、(2)のデータをinsert文で登録し、その登録したデータのIdをさらに(1)のテーブルの顧客Idに挿入したいです。 上記にも記載しましたが、このデータを1000行作成する方法も知りたいです。 説明が分かりにくいうえに、不足している箇所があるかもしれないのですが、 どなたか分かる方がいればぜひ教えていただきたいです。 よろしくお願いします。

みんなの回答

  • arihina
  • ベストアンサー率26% (4/15)
回答No.4

1のインサート後、速やかに SCOPED_IDENTITY() で値を取得してみてください。 ExecuteScalarとかで。 それを2で使います。 または、SCOPED_IDENTITY()をWEB検索してみてください。 ちょっと今手元にコードがないので間違っているかもしれませんが。

  • t_hirai
  • ベストアンサー率28% (222/788)
回答No.3

テストデータをDBに登録したいの であれば、CSVにデータを作成して データインポートするっていう やり方ではダメでしょうか?

  • innoya
  • ベストアンサー率71% (10/14)
回答No.2

こんにちは。 下記のSQLを参考してください。 1000件のデータを登録するSQLです。 -- #### 顧客テーブル作成 CREATE TABLE dbo.UserInfo ( UserID varchar(10) , UserName nvarchar(10) , UserAddress nvarchar(10) ) GO -- #### 注文テーブル作成 CREATE TABLE dbo.OrderInfo ( Idx int identity(1,1) , OrderDesc nvarchar(10) , OrderCnt int , UserID varchar(10) ) GO -- #### 1000件のデータを登録 DECLARE @i int SET @i = 1 WHILE (@i <= 1000) BEGIN INSERT INTO dbo.UserInfo ( UserID, UserName, UserAddress) SELECT 'UserID' + CONVERT(varchar(10), @i), N'山田'+ CONVERT(varchar(10), @i), N'住所'+ CONVERT(varchar(10), @i) INSERT INTO dbo.OrderInfo ( OrderDesc, OrderCnt, UserID) SELECT N'注文内容' + CONVERT(varchar(10), @i), 1, 'UserID' + CONVERT(varchar(10), @i) SET @i = @i + 1 END -- #### データの確認。 SELECT * FROM dbo.UserInfo SELECT * FROM dbo.OrderInfo

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

顧客から注文を作るのはよくわからないのですが、こういうことでいいでしょうか? E:\>db2 create table kokyaku (kid char(02),name char(10),address char(20)) DB20000I SQL コマンドが正常に完了しました。 E:\>db2 insert into kokyaku values('01','name1','add1') E:\>db2 insert into kokyaku values('02','name2','add2') E:\>db2 insert into kokyaku values('03','name3','add3') E:\>db2 insert into kokyaku values('04','name4','add4') DB20000I SQL コマンドが正常に完了しました。 E:\>db2 select * from kokyaku KID NAME ADDRESS --- ---------- -------------------- 01 name1 add1 02 name2 add2 03 name3 add3 04 name4 add4 4 レコードが選択されました。 E:\>db2 create table cyumon (id char(1),naiyo char(10),suryo int, kid char(02)) DB20000I SQL コマンドが正常に完了しました。 E:\>db2 insert into cyumon select '1', 'aaa', 0, kid from kokyaku DB20000I SQL コマンドが正常に完了しました。 E:\>db2 select * from cyumon ID NAIYO SURYO KID -- ---------- ----------- --- 1 aaa 0 01 1 aaa 0 02 1 aaa 0 03 1 aaa 0 04 4 レコードが選択されました。

関連するQ&A