SQL Serverでランダムに点を作成


検証用のレコードを増やしたい時など
random-point

CREATE TABLE TMP_RND_PT
(
 ID INT PRIMARY KEY,
 Shape Geometry NOT NULL,
)
GO

DECLARE @loopCount int = 1000;

DECLARE @minX float = 120;
DECLARE @minY float = 20;
DECLARE @maxX float = 150;
DECLARE @maxY float = 50;
DECLARE @srid int = 4326; -- 4326 = WGS1984

-----上記変数を設定-----

DECLARE @cnt int = 0;
DECLARE @width float = @maxx - @minx;
DECLARE @heigth float = @maxy - @miny;

DECLARE @rnd1 float;
DECLARE @rnd2 float;

WHILE @cnt < @loopCount
 BEGIN
   -- 1Byte = 0 ~ 255  / 2Byte = -2^15 ~ 2^15-1 smallint
   SET @rnd1 = CONVERT(tinyint, CONVERT(varbinary(1), newid())) / 255.0;
   SET @rnd2 = CONVERT(tinyint, CONVERT(varbinary(1), newid())) / 255.0;
   INSERT INTO
    TMP_RND_PT (ID, Shape)
   VALUES
    (@cnt, Geometry::Point( @minx + (@width * @rnd1) , @minY + (@heigth * @rnd2) , @srid) )

  SET @cnt = @cnt+1
 END
カテゴリー: 開発 タグ: パーマリンク