Я соглашаюсь с другими ответами, которые указывают на Вас на app.config. Однако вместо того, чтобы читать значения непосредственно из app.config, необходимо создать служебный класс (AppSettings является именем, которое я использую) считать их и представить их как свойства. Класс AppSettings может привыкнуть к совокупным настройкам от нескольких хранилищ, таких как значения от app.config и информация о версии приложения от блока (AssemblyVersion и AssemblyFileVersion).
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.
Причина, по которой он не может читать метаданные, в том, что у вас есть таблица #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
Причина, по которой вы не можете получить здесь метаданные, заключается в том, что они могут зависеть от данных. Например.
If Exists(Select 1 From Table Where Column1 = 7)
Select Col1, Col2 From Table2
Else
Select Col3, Col4, Col5 From Table2
Я бы никогда не написал хранимую процедуру с разным количеством столбцов в зависимости от данных, НО это возможно. На мгновение предположим, что у вас есть такая хранимая процедура. Какой список столбцов нужно вернуть?