こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

insert した結果を insert する

SQLServerを使用してinsertした結果をinsertしたいのですが、そのクエリをどう書けばいいのか分からず困っています。(ちなみに1000行データを作成したいです)
具体的には下記のような内容です。


(1)注文テーブル[Id, 注文内容,注文個数,顧客Id←(2)のIdのことです)]
(2)顧客テーブル[Id, 名前,住所]

テストデータを作成するために、(2)のデータをinsert文で登録し、その登録したデータのIdをさらに(1)のテーブルの顧客Idに挿入したいです。
上記にも記載しましたが、このデータを1000行作成する方法も知りたいです。



説明が分かりにくいうえに、不足している箇所があるかもしれないのですが、
どなたか分かる方がいればぜひ教えていただきたいです。
よろしくお願いします。

投稿日時 - 2014-01-21 23:23:03

QNo.8440716

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.4

1のインサート後、速やかに
SCOPED_IDENTITY()
で値を取得してみてください。
ExecuteScalarとかで。
それを2で使います。
または、SCOPED_IDENTITY()をWEB検索してみてください。

ちょっと今手元にコードがないので間違っているかもしれませんが。

投稿日時 - 2014-06-22 09:27:48

ANo.3

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

投稿日時 - 2014-02-16 12:48:29

ANo.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

投稿日時 - 2014-01-22 11:09:48

ANo.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 レコードが選択されました。

投稿日時 - 2014-01-22 04:42:10

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-