Могу ли я вернуть столбцы внешнего ключа из табличных функций? - PullRequest
0 голосов
/ 29 сентября 2010

Я хочу использовать табличную функцию и вызывать ее из нескольких хранимых процедур, а не повторять один и тот же запрос для всех хранимых процедур, но для совместимости с устаревшим приложением VB6 / UltraGrid мне нужно сохранить ссылки на внешние ключи изисходные таблицы.

Внутри табличной функции я могу указать PRIMARY KEY, но есть ли способ указать 'FOREIGN KEY'?Я попытался изменить таблицу возврата, как это, но я получаю синтаксическую ошибку:

ALTER TABLE @ReturnTable  
WITH CHECK ADD  CONSTRAINT [FK_ReturnTable_OtherTable]
FOREIGN KEY([OtherTableID])
REFERENCES [dbo].[OtherTable] ([OtherTableID])

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

нет, ты не можешь. функция возвращает «виртуальную» таблицу, которая существует только во время выполнения, и FK не может перейти к такому воображаемому / временному набору строк. Не зная вашей схемы и точно, что вы пытаетесь выполнить, я лучше всего угадаю, чтобы попытаться использовать триггер, чтобы применить это.

1 голос
/ 29 сентября 2010

Будет ли ваша старая сетка видеть отношения FK через представление? Или запрос не может быть сохранен как представление?

...