小编Ros*_*ini的帖子

从存储过程的结果集中选择列

我有一个存储过程返回80列和300行.我想写一个选择,获得其中2列.就像是

SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Run Code Online (Sandbox Code Playgroud)

当我使用上面的语法时,我得到错误:

"无效的列名称".

我知道最简单的解决方案是更改存储过程,但我没有写它,我无法改变它.

有什么办法可以做我想要的吗?

  • 我可以创建一个临时表来放置结果,但因为有80列所以我需要制作一个80列的临时表来获得2列.我想避免追踪返回的所有列.

  • WITH SprocResults AS ....按照马克的建议尝试使用,但我遇到了2个错误

    关键字"EXEC"附近的语法不正确.
    ')'附近的语法不正确.

  • 我尝试声明一个表变量,我得到以下错误

    插入错误:列名或提供的值数与表定义不匹配

  • 如果我尝试
    SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
    我得到错误:

    关键字'exec'附近的语法不正确.

t-sql sql-server select stored-procedures

426
推荐指数
12
解决办法
62万
查看次数

何时使用SQL表别名

我很想知道人们如何使用表别名.我工作的其他开发人员总是使用表别名,并且总是使用a,b,c等的别名.

这是一个例子:

SELECT a.TripNum, b.SegmentNum, b.StopNum, b.ArrivalTime
FROM Trip a, Segment b
WHERE a.TripNum = b.TripNum
Run Code Online (Sandbox Code Playgroud)

我不同意他们的看法,认为表别名应该更加谨慎使用.

我认为在查询中包含两次相同的表时应该使用它们,或者当表名很长并且在查询中使用较短的名称时,将使查询更容易阅读.

我也认为别名应该是一个描述性的名称,而不仅仅是一个字母.在上面的例子中,如果我觉得我需要使用1个字母的表别名,我会使用t表示Trip表,而s表示段表.

sql database table-alias

31
推荐指数
4
解决办法
4万
查看次数

如何编辑VS2010和TFS中的文件,无需检出文件

我正在使用TFS 2010,我需要编辑一个文件localy而不检查它.我希望能够在VS2010中编辑文件,这可能吗?

visual-studio-2010 tfs2010

8
推荐指数
1
解决办法
1万
查看次数