, чтобы убедиться, что вы не потеряете действительные электронные письма, просто сохраните измененные:
CREATE TABLE ChangedEmails
(
PK ...
Email ...
)
затем исправьте электронные письма и сохраните измененные (в одном утверждении)
UPDATE YourTable
SET Email=SUBSTRING([Email], 2, PATINDEX(‘%,%’, [Email] – 2))
OUTPUT INSERTED.PK,DELETED.Email
INTO ChangedEmails
WHERE
Email LIKE ‘”%”’
Теперь, если есть какие-либо сомнения, вы можете увидеть, что было в предыдущем письме, прежде чем вы их изменили.
ТАКЖЕ, на основании комментария ОП:
Это то, что я придумал, но я получаю
ключ нарушения ПК, так что я думаю, что мне нужно
чтобы найти, какие строки вызывают это.
Спасибо!
НЕ делайте PK адресом электронной почты !! используйте идентификатор в качестве PK и сделайте электронное письмо только столбцом данных. Используйте это, чтобы «исправить» вашу таблицу:
ALTER TABLE YourTable ADD YourPKID int NOT NULL IDENTITY (1, 1)
GO
ALTER TABLE YourTable DROP CONSTRAINT PK_YourTable
GO
ALTER TABLE dbo.JobApps ADD CONSTRAINT
PK_YourTable PRIMARY KEY CLUSTERED
(
YourPKID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO