У меня есть таблица, которая заполняется с помощью хранимой процедуры.Эта хранимая процедура использует представление, которое вызывает атрибуты из других баз данных.
Для иллюстрации это что-то вроде:
ALTER PROCEDURE theSp
AS BEGIN
INSERT INTO dbo.theTable (attr1, att2, amount, attr4)
SELECT attr1, attr2, amount, attr4
FROM theView
END
Представление определяется следующим образом:
select attr1, attr2, amount, attr4
from db1.theTable
where date >='anyDate'
и значения вставлены правильно, но если представление используется следующим образом:
select attr1, attr2, amount, attr4
from db2.theTable
where date >='anyDate'
это сообщение отображается:
Проверка информации об идентичности: текущее значение идентификатора '1252'.
Выполнение DBCC завершено.Если DBCC напечатал сообщения об ошибках, обратитесь к системному администратору.
Сообщение 515, Уровень 16, Состояние 2, Процедура theSp, Строка 16
Невозможно вставить значение NULL в столбец «количество», таблица «db2.dbo»..стол';столбец не допускает пустых значений.INSERT завершается неудачей.
Примечание: атрибут 'amount' для таблиц db1 и db2 допускает нулевое значение, но я никогда не вставляю нулевое значение, вместо этого я вставляю 0.
Поэтому я отфильтровал, чтобы проверить,атрибут количества равен нулю, и я не получил результатов, то есть в атрибуте суммы нет нулевого значения.
Кто-нибудь знает возможное решение?