В ответ на этот комментарий (если я прав и что использование TVP между базами данных невозможно):
Какой у меня выбор в этой ситуации?Используя тип XML?
Пуристический подход заключается в том, чтобы сказать, что если обе базы данных работают с одними и теми же данными, их следует объединить в одну базу данных.Прагматик понимает, что это не всегда возможно - но поскольку вы, очевидно, можете изменить как вызывающего, так и вызываемого, возможно, просто используйте временную таблицу, о которой знают оба хранимых процесса.
Я неНе верю, что это возможно - вы не можете ссылаться на тип таблицы из другой базы данных, и даже с одинаковыми определениями типов в обеих БД значение одного типа не может быть назначено другому.
Вы не передаете временную таблицу между базами данных.Временная таблица всегда хранится в базе данных tempdb и доступна для вашего соединения, если соединение открыто и временная таблица не удалена.
Итак, вы создаете временную таблицу в вызывающей стороне:
CREATE TABLE #Values (ID int not null,ColA varchar(10) not null)
INSERT INTO #Values (ID,ColA)
/* Whatever you do to populate the table */
EXEC OtherDB..OtherProc
А потом в вызываемом:
CREATE PROCEDURE OtherProc
/* No parameter passed */
AS
SELECT * from #Values