Да, можно правильно заполнить новое поле таблицы данными из другой таблицы. Для этого можно воспользоваться следующим скриптом на SQL:
```sql
-- Добавляем новое поле TableBId к таблице TableA
ALTER TABLE TableA
ADD TableBId INT; -- Или любой другой тип данных, соответствующий полю Id из таблицы TableB
-- Обновляем новое поле TableBId в таблице TableA на основе данных из таблицы TableB
UPDATE TableA
SET TableBId = TableB.Id
FROM TableA
JOIN TableB ON TableA.Name = TableB.Name;
-- Добавляем внешний ключ к таблице TableA, ссылающийся на поле Id таблицы TableB
ALTER TABLE TableA
ADD CONSTRAINT FK_TableBId
FOREIGN KEY (TableBId)
REFERENCES TableB(Id);
-- Удаляем поле Name из таблицы TableA
ALTER TABLE TableA
DROP COLUMN Name;
```
Этот скрипт добавляет новое поле `TableBId` к таблице `TableA`, заполняет его данными из таблицы `TableB` на основе совпадения значений поля `Name`, добавляет внешний ключ, который ссылается на поле `Id` таблицы `TableB`, и, наконец, удаляет поле `Name` из таблицы `TableA`.