用SQL语句获得一个存储过程返回的表

定义一个存储过程如下:

create proc [dbo].[test1]
@id int
as
select 1 as id,'abc' as name union all 
select @id as id,'zzz' as name

返回两行数据.
现在想用SQL语句来调用这个存储过程,并把他返回的表放入变量中.可以如下做:

declare   @table   table(id   int,name varchar(50))--定义表变量来存放存储过程返回的内容
insert  into @table exec test1 2--将存储过程执行的结果放入表变量中
select *
from @table    --查看表变量中的结果

时间: 2025-01-30 15:35:58

用SQL语句获得一个存储过程返回的表的相关文章

在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名_MsSql

这个问题对于规模稍微大些的项目而言,显得尤其重要了,数据库中如果有几百个存储过程, 难道还一个个找不成,即使自己很了解业务和系统,时间长了,也难免能记得住. 如何使用SQL语句进行查询呢? 下面就和大家分享下SQL查询的方法: 复制代码 代码如下: select distinct name from syscomments a,sysobjects b where a.id=b.id and b.xtype='p' and text like '%pro_GetSN%' 上面的蓝色字体部分表示要

通过DBA_SOURCE定位SQL语句属于哪个存储过程

通过DBA_SOURCE定位SQL语句属于哪个存储过程 最近集中进行了一系列SQL优化,主要通过ADDM和AWR对捕捉COST或物理读.逻辑读很高的语句,问题的主要原因是全表扫描.但提交开发后开发反馈找不到SQL语句,因为属于存储过程.其实通过EDITPLUS全目录检索肯定能够找到该语句的位置,但为了便于日后定位,笔者还是通过ORACLE的dba_source视图进行了步骤. 什么是dba_source字典视图: 存储所有函数.过程.程序包和Java源的完整的文本,对于你了解一个数据库对象的源代

用sql语句遍历一个表里异常(时间段内很大或者很小)的数据,并将异常数据修改成相应时间段前的数据

问题描述 用sql语句遍历一个表里异常(时间段内很大或者很小)的数据,并将异常数据修改成相应时间段前的数据 我有一张表,里面3字段id.time.value. 由于value中的部分值异常的大,我想批量修改数据,比如说4.1日-4.20日出现中出现异常大的数据,我想把异常大的数据修改成和他时间段(时间段前或者后)差不多的数据,请问下这个sql应该怎么写啊.我用游标的方法怎么实现.谢谢啊! 解决方案 不知道你的数据库是什么,用MS SQL SERVER示意 建表SQL如下 CREATE TABLE

SQL语句题:存储过程、触发器的定义【急求解,会的大神帮忙给下正确答案!多谢】

问题描述 SQL语句题:存储过程.触发器的定义[急求解,会的大神帮忙给下正确答案!多谢] 设职工数据库中有如下两个表: 职工表:EMP(P#,PN,D#,SALARY)//属性含义依次为:工号,职工号,部门号,工资 部门表:DEPT(D#,DN,MR)//属性含义依次为:部门号,部门名,部门经理 请按要求完成以下工作: 1.设计一带参数的存储过程,根据该参数指定的部门号,查询该部门所有职工的工资总和. 2.设计一触发器,该触发器能够保证当职工表中添加新纪录时,部门编号必须已经存在于部门表中. 解

Sql语句把一个表的某几列的数据存到另一个表里的方法

原文地址:sql语句把一个表的某几列的数据存到另一个表里的方法作者:星星月亮 一.如何用slq语句把一个表中的某几个字段的数据插入到另一个新表中,就要用下面这条slq语句:     insert into 表名1(字段1,字段2) select 字段1,字段2 from 表名2 这里有一点值得注意的是这2个字段要一一对应,并且按顺序. 二.如果另一个表是已经有数据的表,只希望更改其中的一列或几列的话,则用下面的sql语句:    update 表名1,表名2 set 表名1.字段1 = 表名2.

sql语句分页,并返回总行数

问题描述 sql语句分页,并返回总行数 Select '备品备件' As WLlb,sb.Number As sbNumber,sb.Name As SbName, sbgg.Name As sbGGName,sb.Unit As SbUnit, bm.GroupName As sbGroupName, fc.GroupName As fcRranch, Sum(cgmx.Num) As SumNum,Sum(sbinfo.BuyPrice) As SumPrice From E_Purchas

怎么用sql语句取一个整数的后两位

问题描述 怎么用sql语句取一个整数的后两位 我想取一个数的后两位,比如12345678,我只想要78 这两个,各位有没有哦什么办法... 解决方案 居然有人用right,真是来坑lz的吧 这个很简单, select num % 100就可以了 也就是整除100取余数 解决方案二: select mod(col,100) from test; 解决方案三: substring(col,6,2) 解决方案四: 楼上的方法都可以解决,但是直接取余数的是最方便的.. 解决方案五: select rig

sql生成(c#调用存储过程返回数据表)代码的存储过程

GO /****** 对象: StoredProcedure [dbo].[pro_GenerateServiceFunction] 脚本日期: 08/04/2012 11:26:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateServiceFunction]') AND type in (N'P', N'PC')) DROP PROCEDURE [d

sql-怎么写Sql语句能把上边的数据库表查询出下边表样式的结果

问题描述 怎么写Sql语句能把上边的数据库表查询出下边表样式的结果 解决方案 这就叫做透视变换 自己谷歌下 解决方案二: http://www.cnblogs.com/luluping/archive/2012/07/26/2610705.html 解决方案三: http://www.cnblogs.com/cpcpc/archive/2013/04/08/3009021.html,这个就是列转行,看下这个.