미리 정의 된 값 목록의 값을 테스트 용 테이블에 무작위로 삽입하려고합니다. 삽입되는 내 "임의"값을 모두 정확하게 모든 3000 개 기록에 대해 동일합니다, 나는 내가 이것을 시도했을 때SQL Server 테이블에 임의의 값을 삽입하려면 어떻게해야합니까?
stackoverflow.com/.../update-sql-table-with-random-value-from-other-table
:이 StackOverflow의 질문에있는 솔루션을 사용했습니다.
실제로 임의의 행을 선택하는 쿼리 부분을 실행할 때마다 수동으로 실행할 때마다 임의의 레코드를 선택하므로 쿼리가 작동하는 것입니다. 무슨 일이 일어나고 있는지에 관해서는 내 최고의 추측은 다음과 같습니다
- SQL Server는 하위 쿼리가 임의의 값의 씨앗은 모든 기록에 동일 한 번
- 이상을 평가하는 것을 허용하지, 어떻게 든
SELECT
최적화 된 쿼리 업데이트
내 옵션이 무엇인지 파악하고 있습니다. 나는 잘못된 것을하고 있습니까, 아니면 제가해야 할 다른 방법이 있습니까?
이
내가 사용하고 코드입니다 : 지금이 권리를 확인하는 시간이 없어DECLARE @randomStuff TABLE ([id] INT, [val] VARCHAR(100))
INSERT INTO @randomStuff ([id], [val])
VALUES (1, 'Test Value 1')
INSERT INTO @randomStuff ([id], [val])
VALUES (2, 'Test Value 2')
INSERT INTO @randomStuff ([id], [val])
VALUES (3, 'Test Value 3')
INSERT INTO @randomStuff ([id], [val])
VALUES (4, 'Test Value 4')
INSERT INTO @randomStuff ([id], [val])
VALUES (5, 'Test Value 5')
INSERT INTO @randomStuff ([id], [val])
VALUES (6, null)
INSERT INTO @randomStuff ([id], [val])
VALUES (7, null)
INSERT INTO @randomStuff ([id], [val])
VALUES (8, null)
INSERT INTO @randomStuff ([id], [val])
VALUES (9, null)
INSERT INTO @randomStuff ([id], [val])
VALUES (10, null)
UPDATE MyTable
SET MyColumn = (SELECT TOP 1 [val] FROM @randomStuff ORDER BY NEWID())
이 질문/답변 유용 할 수 있습니다 : http://stackoverflow.com/a/9039661/47226 –