You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Проблема: существует таблица на одном сервере, у которой включено отслеживание изменений данных (ENABLE CHANGE_TRACKING). Необходимо накатить таблицу на другой сервер.
Исходная таблица:
CREATE TABLE [dbo].[test_table](
[id] [int] NOT NULL IDENTITY (1,1),
[name] [nvarchar] (100) COLLATE Cyrillic_General_CI_AS NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[test_table] ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = OFF)
GO
--------------------------------------------------------------------------------
CREATE NONCLUSTERED INDEX [IX_test_table_name] ON [dbo].[test_table] ([name])
ON [PRIMARY]
GO
--------------------------------------------------------------------------------
ALTER TABLE [dbo].[test_table]
ADD CONSTRAINT [PK_test_table] PRIMARY KEY CLUSTERED ([id]) ON [PRIMARY]
GO
Скрипт, формируемый pgCodeKeeper при сравнении:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TABLE [dbo].[test_table](
[id] [int] NOT NULL IDENTITY (1,1),
[name] [nvarchar] (100) COLLATE Cyrillic_General_CI_AS NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[test_table] ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = OFF)
GO
CREATE NONCLUSTERED INDEX [IX_test_table_name] ON [dbo].[test_table] ([name])
ON [PRIMARY]
GO
ALTER TABLE [dbo].[test_table]
ADD CONSTRAINT [PK_test_table] PRIMARY KEY CLUSTERED ([id]) ON [PRIMARY]
GO
Ошибки при выполнении скрипта:
Сообщение 4997, уровень 16, состояние 1, строка 14
Не удается включить отслеживание изменений для таблицы "test_table". Для отслеживания изменений в таблице необходим первичный ключ. Перед включением отслеживания изменений в таблице создайте первичный ключ.
Сообщение 1088, уровень 16, состояние 12, строка 17
Не удалось найти объект "dbo.test_table", так как он не существует, или отсутствуют разрешения.
Сообщение 4902, уровень 16, состояние 1, строка 21
Не удалось найти объект "dbo.test_table", так как он не существует, или отсутствуют разрешения.
The text was updated successfully, but these errors were encountered:
Привет!
Еще один кейс, связанный с CHANGE_TRACKING.
Не удалить таблицу, для которой включено отслеживание изменения данных (ENABLE CHANGE_TRACKING).
CREATE TABLE [dbo].[DriverChecksRequestLog](
[Id] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_DriverChecksRequestLog_Id] DEFAULT (newsequentialid()),
[Checker] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[DriverChecksRequestLog] ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = OFF)
GO
--------------------------------------------------------------------------------
ALTER TABLE [dbo].[DriverChecksRequestLog]
ADD CONSTRAINT [PK_DriverChecksRequestLog_Id] PRIMARY KEY CLUSTERED ([Id]) ON [PRIMARY]
GO
Скрипт, формируемый pgCodeKeeper на удаление таблицы:
ALTER TABLE [dbo].[DriverChecksRequestLog]
DROP CONSTRAINT IF EXISTS [PK_DriverChecksRequestLog_Id]
GO
DROP TABLE IF EXISTS [dbo].[DriverChecksRequestLog]
GO
Ошибки при выполнении скрипта:
Сообщение 3735, уровень 16, состояние 1, строка 2
Не удается удалить ограничение первичного ключа "PK_DriverChecksRequestLog_Id" для таблицы "DriverChecksRequestLog", поскольку для этой таблицы включено отслеживание изменений. Для отслеживания изменений необходимо ограничение первичного ключа для таблицы. Перед удалением ограничения отключите отслеживание изменений.
Сообщение 3727, уровень 16, состояние 0, строка 2
Нельзя удалить ограничение. См. предыдущие ошибки.
@AXEPOH подскажи плз, завести отдельной задачей или приложением достаточно?
Проблема: существует таблица на одном сервере, у которой включено отслеживание изменений данных (ENABLE CHANGE_TRACKING). Необходимо накатить таблицу на другой сервер.
Исходная таблица:
Скрипт, формируемый pgCodeKeeper при сравнении:
Ошибки при выполнении скрипта:
Сообщение 4997, уровень 16, состояние 1, строка 14
Не удается включить отслеживание изменений для таблицы "test_table". Для отслеживания изменений в таблице необходим первичный ключ. Перед включением отслеживания изменений в таблице создайте первичный ключ.
Сообщение 1088, уровень 16, состояние 12, строка 17
Не удалось найти объект "dbo.test_table", так как он не существует, или отсутствуют разрешения.
Сообщение 4902, уровень 16, состояние 1, строка 21
Не удалось найти объект "dbo.test_table", так как он не существует, или отсутствуют разрешения.
The text was updated successfully, but these errors were encountered: