Рассмотрим подзапросы в пунктах NOT EXISTS
:
SELECT m.EmployeeID, m.Amount, m.DatePaid, m.[Advance/paid], m.CID
FROM tbMaster m
WHERE NOT EXISTS
(SELECT 1 FROM tbCID c
WHERE c.CID = m.CID OR c.AMOUNT = m.AMOUNT OR c.DATEPAID = m.DATEPAID)
OR NOT EXISTS
(SELECT 1 FROM table3 t
WHERE t.CID = m.CID OR t.AMOUNT = m.AMOUNT OR t.DATEPAID = m.DATEPAID)
Для обратных сравнений рассмотрите возможность добавления запросов объединения с индикатором source_table :
SELECT m.EmployeeID, m.Amount, m.DatePaid, m.[Advance/paid], m.CID,
'tbMaster' AS [source_table]
FROM tbMaster m
WHERE NOT EXISTS
(SELECT 1 FROM tbCID c
WHERE c.CID = m.CID OR c.AMOUNT = m.AMOUNT OR c.DATEPAID = m.DATEPAID)
OR NOT EXISTS
(SELECT 1 FROM table3 t
WHERE t.CID = m.CID OR t.AMOUNT = m.AMOUNT OR t.DATEPAID = m.DATEPAID)
UNION ALL
SELECT c.EmployeeID, c.Amount, c.DatePaid, c.[Advance/paid], c.CID,
'tbCID' AS [source_table]
FROM tbCID c
WHERE NOT EXISTS
(SELECT 1 FROM tbMaster m
WHERE m.CID = c.CID OR m.AMOUNT = c.AMOUNT OR m.DATEPAID = c.DATEPAID)
OR NOT EXISTS
(SELECT 1 FROM table3 t
WHERE t.CID = c.CID OR t.AMOUNT = c.AMOUNT OR t.DATEPAID = c.DATEPAID)
UNION ALL
SELECT t.EmployeeID, t.Amount, t.DatePaid, t.[Advance/paid], t.CID,
'table3' AS [source_table]
FROM table3 t
WHERE NOT EXISTS
(SELECT 1 FROM tbMaster m
WHERE m.CID = t.CID OR m.AMOUNT = t.AMOUNT OR m.DATEPAID = t.DATEPAID)
OR NOT EXISTS
(SELECT 1 FROM tbCID c
WHERE c.CID = t.CID OR c.AMOUNT = t.AMOUNT OR c.DATEPAID = t.DATEPAID)
Правильный способ - использовать команду -o upgradedesolution. В большинстве случаев нет необходимости убирать и удалять решение и переустанавливать его. Убедитесь, что вы выполнили команду -o execadmsvcjobs, как обычно.
stsadm -o retractsolution -name ... -immediate -allcontenturls
stsadm -o execadmsvcjobs
stsadm -o deletesolution -name ...
stsadm -o addsolution -filename ...
stsadm -o deploysolution -name ... -immediate -allcontenturls -allowgacdeployment -allowcaspolicies
stsadm -o execadmsvcjobs
Несколько предупреждений:
Иногда сначала нужно начинать с деактивации функции (stsadm -o deactivatefeature). Когда я изменил функцию сайта, содержащую шаблон списка, на веб-функцию, я получил двойные ссылки на странице создания. Поэтому мне пришлось снова установить старую функцию, деактивировать ее, а затем переустановить новую функцию.
НЕ используйте -force, если вы не уверены, что делаете. Если вы используете его с командой -o deletesolution, вы можете получить старые версии файлов на некоторых или на всех ваших серверах. Такие проблемы может быть трудно отследить, и это дает вам много дополнительной работы, особенно если у вас есть несколько серверов переднего плана.
Призрачные файлы не обновляются.
stsadm -o execadmsvcjobs обработает любую работу, которая опаздывает с обработкой
повторной активации функций, содержащих контент (в следующий раз; используйте сшивание функций!)
решения по обновлению не всегда автоматически устанавливают новые функции (да, установить, а не активировать). Проверьте это.
IISRESET также может быть полезным, но вы можете попробовать запустить «Мастер настройки продуктов и технологий SharePoint», AKA PSCONFIG .EXE
Расположен по адресу C: \ Program Files \ Common Files \ microsoft shared \ Расширения веб-сервера \ 12 \ BIN
Он синхронизирует информацию, содержащуюся в базе данных, IIS и двоичных файлах. Необходимо запустить его, когда вы применяете пакет обновления.
Также убедитесь, что все серверы в вашей ферме имеют доступ к центральному администрированию и что вы запустили PSCONFIG на всех из них.
I think because you are supplying the -force parameter in the deploysolution command you are actually suppressing the error message that would probably be displayed - along the lines of Solution already exists. As stated previously either do retract->deploy or upgrade (depending on your scenario).