мигрирам база данни от sql сървър 2008 към teradata

Мигрирам база данни от Sql Server 2008 към Teradata и се сблъсквам с проблем:

В Sql Server в ddl на колона на таблица се дефинира, както следва:

[rowguid] uniqueidentifier ROWGUIDCOL NOT NULL CONSTRAINT [DF_Address_rowguid] DEFAULT (NEWID())

Тази колона използва функцията newid() за генериране и вмъкване на произволна стойност на varchar в колоната [rowguid], ако потребителят не предостави никакви данни.

В Teradata няма подобна функция за генериране на тази стойност.

Какво може да се използва вместо функцията NEWID() на Sql Server при създаване на подобни ddl таблици за Teradata?


person bhawuk chauhan    schedule 25.07.2013    source източник


Отговори (1)


Няма естествен еквивалент за GUID/UUID в Teradata. Teradata предлага колона IDENTITY, за да осигури автоматично нарастваща колона. Колоната ИДЕНТИЧНОСТ не идва без своите нюанси и бих ви насърчил да прочетете Глава 5 - Създаване на таблица в Език за дефиниране на SQL данни – Подробни теми, който има раздел, обясняващ колоните за самоличност.

Като част от вашата миграция от SQL Server към Teradata обаче ще трябва да разберете концепцията за това как данните се разпределят в Teradata посредством основния индекс на таблицата. Това може да наложи да прегледате съществуващия си модел на данни и да преработите как той е физически внедрен в Teradata.

person Rob Paller    schedule 25.07.2013