- 締切済み
insert した結果を insert する
SQLServerを使用してinsertした結果をinsertしたいのですが、そのクエリをどう書けばいいのか分からず困っています。(ちなみに1000行データを作成したいです) 具体的には下記のような内容です。 (1)注文テーブル[Id, 注文内容,注文個数,顧客Id←(2)のIdのことです)] (2)顧客テーブル[Id, 名前,住所] テストデータを作成するために、(2)のデータをinsert文で登録し、その登録したデータのIdをさらに(1)のテーブルの顧客Idに挿入したいです。 上記にも記載しましたが、このデータを1000行作成する方法も知りたいです。 説明が分かりにくいうえに、不足している箇所があるかもしれないのですが、 どなたか分かる方がいればぜひ教えていただきたいです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- arihina
- ベストアンサー率26% (4/15)
1のインサート後、速やかに SCOPED_IDENTITY() で値を取得してみてください。 ExecuteScalarとかで。 それを2で使います。 または、SCOPED_IDENTITY()をWEB検索してみてください。 ちょっと今手元にコードがないので間違っているかもしれませんが。
- t_hirai
- ベストアンサー率28% (222/788)
テストデータをDBに登録したいの であれば、CSVにデータを作成して データインポートするっていう やり方ではダメでしょうか?
- innoya
- ベストアンサー率71% (10/14)
こんにちは。 下記の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)
顧客から注文を作るのはよくわからないのですが、こういうことでいいでしょうか? 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 レコードが選択されました。