Вот наша текущая таблица
CREATE TABLE Visitor
(
VisitorID bigint,
DayPhone varchar(50),
NightPhone varchar(50)
)
Я хочу перенести эти данные в отдельную таблицу:
CREATE TABLE VisitorPhone
(
VisitorID bigint,
Label varchar(50), --Day, Night, Work, Cell, etc.
Phone varchar(50)
)
Я думал, что наиболее эффективным способом было бы сделать это:
INSERT INTO VisitorPhone(VisitorID, Label, Phone)
SELECT VisitorID, 'day', DayPhone FROM dbo.Visitor WHERE DayPhone IS NOT NULL AND DayPhone <> ''
INSERT INTO VisitorPhone(VisitorID, Label, Phone)
SELECT VisitorID, 'night', NightPhone FROM dbo.Visitor WHERE NightPhone IS NOT NULL AND NightPhone <> ''
Какие у меня есть другие варианты? Мы говорили обо всем, начиная с функций Sql CLR, Temp Tables, ADO.NET, вы называете это. Какой действительно самый эффективный способ сделать это? Имейте в виду, что DayPhone и NightPhone не являются частью индекса, и что у меня есть записи о посетителях 16MM +, которые будут находиться в диапазоне от ~ 16MM до ~ 32MM записей VisitorPhone.