在使用临时表的存储过程的Visual Studio中检索字段架构

Pet*_*teT 5 .net sql-server stored-procedures

我有一些复杂的存储过程使用链接服务器从其他数据库中提取数据.此数据被放入临时表中,这些临时表在选择查询中连接以进行输出.这些程序工作正常,但是在visual studio中如果我尝试使用设计器将存储过程添加到数据集中,我会得到错误无效的对象名称#tmp或者调用第一个临时表.它无法检索数据库架构.在ASP.NET中使用和sqldatasource也是一样的.

该过程仍然可用,但我必须手动添加它应输出到数据表的所有列.手动做这将是一件痛苦的事情,我认为它与visual studio收集存储过程的输出字段的方式有关,它似乎不以正常方式运行它.有没有办法纠正这个问题,因为我有很多要做的事情,并且不想手动添加所有列,这既费时又容易出错.

Pet*_*teT 12

谷歌搜索了一段时间后,我找到了一个奇怪的解决方案:

IF 1=0 BEGIN
SET FMTONLY OFF
END
Run Code Online (Sandbox Code Playgroud)

在存储过程开始时,设计人员可以正确获取架构信息.这段代码显然从未运行,但它解决了这个问题.FMTONLY仅与返回有关存储过程的元数据有关.我正在使用sql server 2005.