Для Смешения немного известного приема должно добавить эти атрибуты к Вашему usercontrol или окну:
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="600"
Это установит расчетную высоту и ширину к 500 и 600 соответственно. Однако это будет только работать на разработчика смешения. Не Разработчик Visual Studio.
До Разработчика Visual Studio, Ваша техника - все, что работает. Который является, почему я не использую Разработчика Visual Studio.;)
Вы не можете откладывать проверки ограничений в SQL Server по нескольким операторам (если вы не ОТКЛЮЧИТЕ), поэтому вы должны избегать конфликта или делать это в одном операторе
update
regionkey
set
region= CASE areaid WHEN 101 THEN 'ILLI' ELSE 'MICH' END,
locale= CASE areaid WHEN 101 THEN 'CHIC' ELSE 'DETR' END
where
areaid IN (101, 102);
или, более традиционно (в транзакция эта)
update regionkey
set region='AAAA', locale='BBBB' where areaid = 101;
update regionkey
set region='MICH', locale='DETR' where areaid = 102;
update regionkey
set region='ILLI', locale='CHIC' where areaid = 101;
Edit: Почему бы не поменять местами ключи, а не значения? Обычно он дает нормальный результат, если только areaid не имеет какого-либо значения
update
regionkey
set
areaid = 203 - areaid
where
areaid IN (101, 102);
Лучше всего сделать три обновления. Обновите первую запись до временного набора значений, обновите вторую запись, а затем повторно обновите первую запись до требуемых значений.
Вы пробовали простой акт включения его в транзакцию?
Я понимаю, что вы можете установить ограничения, чтобы разрешить это чтобы обеспечить соблюдение ограничения только в конце транзакции, но я не уверен, настроены ли ваши ограничения таким образом.
Одно из предложений, которое может быть не самым безопасным для больших наборов записей, - это установить для обеих записей как «» для региона и локали, а затем выполнить два обновления операторов, по одному для каждой записи, например:
UPDATE
regionkey
SET
region = ' ',
locale = ' '
WHERE
areaid in (101,102)
UPDATE
regionkey
SET
region = 'ILLI',
locale = 'CHIC'
WHERE
areaid = 101
UPDATE
regionkey
SET
region = 'MICH',
locale = 'DETR'
WHERE
areaid = 102
Как я уже сказал, это, вероятно, не самый безопасный способ, но для небольшого набора данных все должно быть в порядке.
ОБНОВЛЕНИЕ: Ларри правильно указал, что первый Оператор UPDATE нарушит ограничение UNIQUE. Используйте вместо этого для первого ОБНОВЛЕНИЯ:
UPDATE
regionkey
SET
region = areaid,
locale = areaid
WHERE
areaid in (101,102)
Таким образом, каждый промежуточный регион и локаль будут (или должны быть) уникальными.