Стоит отметить, что невозможно неявно скопировать столбец sql_variant.
например, создать схему резервного копирования CPSync4D.ProjectProfilerOption с именем CPSync4D.ProjectProfilerOption_bkp
, а затем
Insert into CPSync4D.ProjectProfilerOption_bkp
(
ProjectProfilerOptionID
,ProjectID
,ProfilerOptionID
,ProfilerOptionValue
)
SELECT
ProjectProfilerOptionID
,ProjectID
,ProfilerOptionID
,ProfilerOptionValue
FROM CPSync4D.ProjectProfilerOption
Все значения для ProfilerOptionValue в таблице резервных копий будут varchar
Примечание также: мне сказали, что SQL_Variant нельзя использовать в репликации, но это не так .Конечно, это можно сделать с помощью SQL 2008 R2 (который я использую), потому что я только что сделал это, но это может быть верно для более старых версий (у меня нет более старых версий для проверки, поэтому я не могуподтвердите или опровергните это.)
Что верно, так это то, что если вы реплицируете таблицу с SQL-вариантом в ней и имеете много данных, а затем что-то идет не так, и вам нужно исправить данные вручную, тогда у вас может быть неприятный кусок SQL для записи.Это связано с тем, что при копировании данных нельзя копировать с несколькими базовыми типами в одном и том же операторе копирования.Я думаю, что репликация не имеет этой проблемы, потому что она не копирует несколько строк (с очевидным исключением снимка, но использует bcp).
ps.Я понимаю, что это старый пост, но поместите его здесь для других будущих посетителей с тем же вопросом.