2014-02-05 3 views
0

У меня есть следующая структура Sales и Invoices таблицКак обновить столбцы из двух таблиц?

продаж

SaleNo int PK 
    SaleDt Datetime PK 
    Qnty 
    UP 

Счетов

InvoiceNo int PK 
InvoiceDT Datetime PK 
SaleNo int PK FK 
SaleDT datetime PK FK 

Я хочу, чтобы обновить SaleDT из двух таблицы и мне нужно установите значение «2013-01-31 08: 25: 38.217». Как это сделать?

+6

Обновление ПК Я думаю, что это плохая идея – Koitoer

+1

Вы можете использовать OnUpdate CASCADE ... –

+0

Почему элемент временной метки первичного или внешнего ключа? Кажется, что 'SaleNo' (и' SaleNo', 'InvoiceNo' на дочерней таблице) должно быть достаточно для уникальной идентификации, и это устранит проблему, с которой вы столкнулись, поскольку вам не нужно будет дублировать ее на дочернем Таблица. – jpmc26

ответ

1

попробовать это ..

- Первое значение обновление в одной таблице, то в другом

UPDATE  S 
SET   S.SaleDT = 'your value' 
FROM   SALE S 
INNER JOIN INVOICE I 
ON   S.SaleNO = I.SaleNo 


UPDATE  I 
SET   I.SaleDT = 'your value' 
FROM SALE S 
INNER JOIN INVOICE I 
ON   S.SaleNO = I.SaleNo 
+0

он не работает Здесь ошибка = ** Msg 547, уровень 16, состояние 0, строка 1 Операция UPDATE противоречила ограничению REFERENCE «FK_Invoices_Sales». Конфликт произошел в базе данных «POSSystemTest1», таблица «dbo.Invoices». Утверждение прекращено. ** Итак, один из способов сделать это - разрыв отношений между таблицами и обновлением отдельно, тогда ответ «Shahid Iqbal» будет работать:) Но в реальной жизни невозможно сломать такие таблицы сделать крупные обновления? –

Смежные вопросы