9

Я пытаюсь добавить tableadapter в хранимую процедуру в своем SQL Server 2005 Express. Однако хранимая процедура использует временную таблицу с именем #temp. При создании адаптера таблицы Visual Studio жалуется на «Неизвестный объект» #temp »и говорит, что хранимая процедура возвращает 0 столбцов. Это проблематично, потому что я использую эту хранимую процедуру с кристальным отчетом и нуждаюсь в этих столбцах.Почему мой типизированный набор данных не похож на временные таблицы?

Как это исправить?

ответ

30

Bizarre. По this добавить

IF 1=0 BEGIN 
    SET FMTONLY OFF 
END 

справа SP после AS части SP и она работает. У Visual Studio сейчас нет проблем с этим. Я понятия не имею, почему это работает так, или почему это сработает, но это так.

+2

У кого-то, вероятно, плохой припой. Это помогло мне. +1 –

+0

все, что я могу сказать, это ... ничего себе. это работает. Для меня это важное дело. Я использую временные таблицы, которые должны быть уникальными для каждого экземпляра отчета, который запускается. Невозможно перезаписать таблицы с другой рабочей станции. Мне нужны временные таблицы для работы с моей хранимой процедурой. Благодарю. –

1

Это может быть старая нить, и ответ найден, но когда кто-то попадает в вашу хранимую процедуру после этого и видит этот код, он действительно не понимает. Существует еще один способ сделать это правильно, и это просто объявить таблицу в качестве переменной, как это:

DECLARE @temp TABLE 
(
    SomeText1 nvarchar(255), 
    SomeText2 nvarchar(255) 
) 

Кроме того, не забудьте удалить DROP TABLE в конце.

PS: Если вам действительно нужно использовать временную таблицу, потому что вам нужно ее создать, тогда вам нужно написать код, указанный в предыдущем ответе. Надеюсь это поможет.

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