我想在.NET中构建一个设计器,并希望能够从存储过程中检索输出的列和列类型而不调用它,以便设计器可用于映射输出。这可能吗?我甚至愿意在必要时使用非托管API。有没有办法找出存储过程返回而没有运行它?
1
A
回答
3
我相信你要找的是SET FMTONLY
(Documentation)。
这使您可以执行一个SP(或select语句)并查看将在没有实际执行查询的情况下返回哪些列。
+0
通过SQL事件探查器,我看到ODBC,OLE-DB和/或其他低级API使用此技巧。 Upvoted,但我不知道使用它会多么容易。 – 2011-01-05 15:09:26
+0
谢谢。我认为这会起作用。它似乎返回所有可能的返回值,即使它们有条件地返回。 – 2011-01-05 15:21:55
1
这通常是不可能的,因为即使是单个存储过程也可以返回不同的结果集,具有不同的列或列数据类型。
0
在极端情况下,即使返回的结果集的数量可能取决于参数,并且存储过程使用动态sql时,它绝对不可能。
相关问题
- 1. 有没有办法让SQL Server存储过程自动出错?
- 2. 有没有办法显示HTML而不运行它?
- 3. 有没有办法以预定义的时间间隔运行存储过程?
- 4. 有没有办法让YQL返回HTML?
- 5. 有没有办法跨存储过程传递临时表
- 6. 有没有办法在Oz中存储函数/过程调用?
- 7. 有没有办法运行Chrome扩展程序而不点击?
- 8. 有没有办法检查ansicon.exe是否存在,而不使用CMake运行它?
- 9. ms sql存储过程返回的数据没有输出
- 10. 它没有返回
- 11. 有没有办法脱机运行Trac?
- 12. 有没有办法运行NPM安装
- 13. 有没有办法从运行的ruby进程转储内存中的对象?
- 14. 有没有办法查看Rapid SQL对存储过程执行的SQL?
- 15. 存储过程没有得到执行
- 16. 没有它运行
- 17. 有没有办法在运行时找到PackageFamilyName?
- 18. 有没有办法让MySQL返回INSERT命令产生的行?
- 19. 有没有办法让python应用程序无法运行?
- 20. 视图posts.views.create没有返回HttpResponse对象。它没有返回而不是
- 21. 所选的存储过程或函数没有返回列
- 22. 在没有存储过程的情况下返回错误
- 23. 返回值从存储过程没有设置
- 24. 存储过程返回结果没有变化
- 25. DataReader没有返回MySQL存储过程的结果
- 26. PLSQL存储过程在实体没有返回值框架
- 27. MySQL存储过程没有插入数据,尽管返回ID
- 28. 节点没有为成功的存储过程返回值
- 29. 有没有在特定时间运行Firebird存储过程的方法?
- 30. 返回10,而且没有退出-PHP
不要这样想。请参阅相关的[Microsoft Connect项目](https://connect.microsoft.com/SQLServer/feedback/details/525653/stored-procedures-should-expose-detailed-contracts)。编辑:虽然实际上Visual Studio强类型数据集设计器在一定程度上执行此操作... – 2011-01-05 15:05:03