2012-06-20 2 views

ответ

23

Выполните следующие шаги: -

1) .Firstly удалить старые данные из таблицы.

2). Использовать ALTER TABLE dbo.tbltest
ALTER COLUMN ID varchar(200)

3). Теперь снова ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier

Чтобы быть ясно, вы не можете преобразовать столбец с числовыми для UniqueIdentifier непосредственно,

но вы можете преобразовать числовые -> VARCHAR -> UniqueIdentifier.

4

Вам нужно добавить столбец первой (возможно, с default или nullable, чтобы столбец мог быть успешно добавлен в строки с существующими данными), обновите его до нужных вам значений или измените любые ключи (если это первичный ключ, измените его на новый столбец, а затем также измените любые внешние ключи к этой таблице), затем удалите старый столбец и при необходимости измените новый столбец (например, установка семени идентичности, удаление значения с возможностью удаления и т. д.).

+0

Я уже удалил все данные из таблицы. – Visions

+0

Я вижу. В этом случае вы также можете изменить его на 'binary (16)' first, а затем на 'bigint' - не проверены, но, насколько я помню, SQL Server допускает это, пока данные не усекаются в процессе. – Lucero

3

Примечание для людей, использующих Entity Framework:
Очевидно, что если у вас есть большая база данных со сложными отношениями, сбросив все отношения и ID столбцов, и повторно добавлять их огромное испытание.

Это много проще обновить сгенерированную модель (.edmx).

Да, Visual Studio позволяет вам обновлять тип данных без жалоб. Фактически, когда вы сохраняете файл .edmx, отношения будут проверяться; любые поля, которые вы, возможно, пропустили, будут отображаться как ошибки.

После того, как вы закончите, вы можете восстановить базу данных из модели. Бум, сделано.

0

Если ответ Сингха не работает, вам, вероятно, придется отказаться от стола и воссоздать его.

Смежные вопросы