Получите полевую схему в Visual Studio хранимой процедуры, которая использует временные таблицы

Я соглашаюсь с другими ответами, которые указывают на Вас на app.config. Однако вместо того, чтобы читать значения непосредственно из app.config, необходимо создать служебный класс (AppSettings является именем, которое я использую) считать их и представить их как свойства. Класс AppSettings может привыкнуть к совокупным настройкам от нескольких хранилищ, таких как значения от app.config и информация о версии приложения от блока (AssemblyVersion и AssemblyFileVersion).

5
задан PeteT 14 December 2009 в 09:54
поделиться

3 ответа

After googling for a while I found a bizarre solution putting:

IF 1=0 BEGIN
SET FMTONLY OFF
END

At the start of your stored procedure allows the designer to correctly get the schema information. This code obviously never runs but it solves the issue. FMTONLY is related to only returning meta data about a stored procedure. I am using sql server 2005.

12
ответ дан 18 December 2019 в 13:15
поделиться

Причина, по которой он не может читать метаданные, в том, что у вас есть таблица #Temp, и он не может найти временную таблицу. Вы можете попытаться обойти это, определив метаданные с помощью запроса TOP 0

SELECT TOP 0
    CONVERT (NULL, VarChar (30)) AS Column1,
    CONVERT (NULL, INTEGER) AS Column2,
    CONVERT (NULL, DECIMAL (9, 2)) AS Column3,
    CONVERT (NULL, VarChar (55)) AS Column4

UNION

SELECT *
FROM #MyTempTable
0
ответ дан 18 December 2019 в 13:15
поделиться

Причина, по которой вы не можете получить здесь метаданные, заключается в том, что они могут зависеть от данных. Например.

If Exists(Select 1 From Table Where Column1 = 7)
  Select Col1, Col2 From Table2
Else
  Select Col3, Col4, Col5 From Table2

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

0
ответ дан 18 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: