я переношу базу данных с sql server 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 при создании аналогичных табличных ddls для Teradata?


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


Ответы (1)


В Teradata нет собственного эквивалента для GUID/UUID. Teradata предлагает столбец IDENTITY для предоставления столбца с автоматическим увеличением. Столбец IDENTITY не лишен своих нюансов, и я рекомендую вам прочитать Главу 5 — Создание таблицы в Язык определения данных SQL — подробные темы, в котором есть раздел, объясняющий столбцы идентификаторов.

Однако в рамках миграции с SQL Server на Teradata вам потребуется понять концепцию распределения данных в Teradata с помощью первичного индекса таблицы. Для этого может потребоваться пересмотреть существующую модель данных и изменить ее физическую реализацию в Teradata.

person Rob Paller    schedule 25.07.2013