请问如何在SQL SERVER里实现select * from 存储过程?

redmaple 2000-01-29 01:38:00
...全文
2597 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LittleStar 2000-02-12
  • 打赏
  • 举报
回复
MSSQL的存贮过程支持返回数据集,可以将变量声明为OUTPUT或select @变量
use pubs
go
1)
create proc Demo(@p char(20) output)
as
begin
select @p=lname from authors
end

2)
create proc Demo(@p char(20))
as
begin
select @p=lname from authors
select @p
end
HjmaAsC 2000-02-11
  • 打赏
  • 举报
回复
建意你看一下SQL的在线帮助,安装时已经存在!!
HjmaAsC 2000-02-11
  • 打赏
  • 举报
回复
首先必须声明一组变量,用于将数据集返回。
DECLARE @FIELD1 varchar(100), @FIELD2 int

声明一个游标
DECLARE CURSOR bt FOR
SELECT field1, field2 FROM table

OPEN bt
FETCH NEXT FROM bt INTO @FIELD1, @FIELD2
WHILE (@@FETCH_STATUE <> -1)
/*这里可以加入你的处理程序*/
FETCH NEXT FROM bt INTO @FIELD1, @FIELD2
BEGIN
END
CLOSE bt

我的Email:hjmaAsC@163.net
seeker 2000-01-30
  • 打赏
  • 举报
回复
OpenQuery
LaoZheng 2000-01-30
  • 打赏
  • 举报
回复
在存储过程中可以用Select * from Table来返回结果集
但是@result返回时就用错!
redmaple 2000-01-30
  • 打赏
  • 举报
回复
Dou的回答好象可行,但是...,难道没有更简单的?
主要是原来的程序用的是Interbase,存储过程都是这样调用的'select * from 存储过程',TQUERY.OPEN;不想对程序做太多动作.
先谢谢大家,期待更优秀的答案.
Michael 2000-01-30
  • 打赏
  • 举报
回复
SQL Server7.0绝对可以,因为的存储过程可以返回一个结果集。Delphi中使用时必须用TQuery组件,SQL语句中用Exec 命令。当然,因是结果集,最好用DBGrid类似控件来接收结果。
929 2000-01-29
  • 打赏
  • 举报
回复
SELECT * FROM类型的查询是表示将一个表中所有字段的值都检索出来。但是写SELECT * 这种写法可能在今后数据库表结构改变时发生错误。比如说表中增加了一个字段,而原有程序并未对新增字段处理,这样会造成错误。可以在SELECT语句中显示指定表中所需字段,然后进行处理。写存储过程其实很容易,在SQL ENTERPRISE中生成存储过程框架声明中填入SELECT语句就可以了。至于如何编写SQL语句可参考SQL SERVER ONLINE BOOK。
DOU 2000-01-29
  • 打赏
  • 举报
回复
你所需要的是不是从存储过程里返回结果集?
在SQL SERVER的存储过程里可以直接返回一个或多个结果集
当然也可以通过将存储过程返回的结果集插入一临时表,再从临时表中选取结果,
例如 ,建临时表#tmptbl,执行insert #tmptbl EXEC sp_xyz,然后执行
Select * from #tmptbl 或对表中执行其它操作

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧