Моя таблица Схема выглядит следующим образом:обновления определенных столбцов в таблице итеративно (Do насыпной обновление)
Пол: голец (1), а не нулевой Фамилия: VARCHAR (25), нулевой Имя: varhcar (35), не нулевые
данные в таблице выглядит следующим образом:
Gender | Last Name | First Name |
M Doe John
F Marie Jane
M Jones Jameson
F Simpson Alice
Сейчас я пытаюсь обновить все имена в таблице из имен, присутствующих в текстовом файле.
Мой запрос выглядит следующим образом:
-- Sort out the Forenames we'll be using for the data, we make a #Name2 table because I have yet to figure our
-- inserting specific columns using BULK INSERT and without using a format file.
CREATE TABLE #Name (Name VARCHAR(50))
CREATE TABLE #ForeNames (FirstName VARCHAR(50), Gender VARCHAR(1))
-- Move data in the #Name2 table
BULK INSERT #Name FROM "c:\girlsforenames.txt" WITH (ROWTERMINATOR='\n')
-- Now move it to the forename table and add the gender
INSERT INTO #ForeNames SELECT [Name], 'F' FROM #Name
-- Delete the names from temporary table
TRUNCATE TABLE #Name
-- Same for the boys
BULK INSERT #Name FROM "c:\boysforenames.txt" WITH (ROWTERMINATOR='\n')
INSERT INTO #ForeNames SELECT [Name], 'M' FROM #Name
-- Now do the surnames
TRUNCATE TABLE #Name
BULK INSERT #Name FROM "c:\surnames.txt" WITH (ROWTERMINATOR='\n')
DECLARE @Counter BIGINT
SET @Counter = 4
WHILE (@Counter > 0)
BEGIN
UPDATE TableName
set
[last_name]= (SELECT TOP 1 FirstName from #ForeNames),
[first_name]=(SELECT TOP 1 Name FROM #Name ORDER BY NEWID()),
[gender]= (SELECT TOP 1 Gender FROM #ForeNames ORDER BY NEWID());
SET @[email protected]
END
DROP TABLE #Name
DROP TABLE #ForeNames
SELECT * FROM TableName
Что происходит это все строки в таблице обновляются с теми же значениями, и каждый раз, когда я выполнить запрос они обновленные с новым набором значений.
То, что я хочу, это прокрутить каждую строку и обновить ее, а затем обновить следующую строку другим набором случайных имен. Но здесь он обновляет одно и то же случайное имя во всех строках таблицы.
Любая помощь будет оценена по достоинству.
Пожалуйста, объясните, как коррелируются записи в файлах, например, как найти фамилию для данного имени для имени – alzaimar
@alzaimar. Записи не коррелированы. Все, что мне нужно, это случайный набор имен для обновления. – user2471553
@ user2471553 обновлено * what *? Откуда вы знаете, какие строки должны получать какие обновления? – RBarryYoung