[SQL Server] 1000件(任意の数)のデータを登録する方法 - While文を利用する。

inno
2014-04-11 11:09 2834 0
[SQL Server] 1000件(任意の数)のデータを登録する方法 - While文を利用する。

データを任意の数程度データを登録する時に少量のデータの場合、WHILE文を利用するのが簡単だ。

WHILE文を条件を満足する間にはずっと実行される。

WHILE (条件)
BEGIN

INSERT INTO文.......

END


無限大実行したいときは条件に(1=1)とする。

WHILE (1=1)
BEGIN

INSERT INTO文.......

END

条件は満足しているので、ずっと実行されるようになる。
だが、こういう無限大で使う人はないだろう。。

では、簡単に1000件程度データを登録するSQLを作成してみた。
条件には「@i」変数の値が1000になるまでずっと実行されるように設定した。


-- #### 顧客テーブル作成
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


実行結果


上記の実行結果のスクリーンショットは8件ずつ表示されていますが、
実際には1000件が登録されている!!

While文は意外と色んなところで使うので、覚えておくと便利だ!!

コメント