Я пытаюсь написать сценарий T-SQL для выравнивания двух копий базы данных с
tablediff
утилита , предоставляемая SQL Server, но я столкнулся с проблемой со всеми строками текстового поля внутри таблицы.
Проблема в том, что все строки, хранящиеся в этом текстовом поле, заканчиваются нулем (фактически, в конце строки есть нулевой символ, если я экспортирую их в текстовый файл), а также INSERT
и UPDATE
все запросы, генерируемые tablediff
, не выполняются из-за того, что нулевой терминатор обрезает запрос.
Есть ли способ предотвратить сбой сгенерированных скриптов?
UPDATE
Запрос на создание, сгенерированный MSSQL для таблицы, которую я пытаюсь выровнять
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[TABTEST](
[Code] [varchar](50) NOT NULL,
[Source] [text] NULL,
CONSTRAINT [PrK_TABTEST] PRIMARY KEY CLUSTERED
(
[Code] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
Вставить запрос, сгенерированный tablediff
(имейте в виду, что символ, который вы не видите в конце Source
после NOOP
, является символом ANSI NULL)
UPDATE [dbo].[TABTEST] SET [Source]=N'NOOP ' WHERE [Code] = N'TestCode'