我是数据库的初学者,请问用存储过程提交数据集是这么回事,存储过程的参数可以接收数据集吗?要用到什么控件没有?如果可以请给个例子,大家平时怎样处理的不妨赐教。

解决方案 »

  1.   

    楼主是不是说用存储过程执行一些SQL语句,比如录入,修改或者删除数据库的内容?
    如果是这样的话直接把SQL语句按照存储过程的格式写进去就可以了
    另外,存储过程可以接收参数的,包括输入和输出参数都可以
      

  2.   

    oracle中可以使用动态游标来实现,但是这个也是数据库服务器内部实现的,接收外界传入的数据集应该不太可能
      

  3.   

    你可以往TABLE里添加东西,然后再在存储过程中用就可以了啊.
      

  4.   

    “你可以往TABLE里添加东西,然后再在存储过程中用就可以了啊.”请问 TABLE 是什么table,怎样用
      

  5.   

    请问 insert 可以一次插入多条记录吗
      

  6.   

    insert 不用到临时表可以吗
      

  7.   

    聚集函数可以对属于相同分组的数值进行计算,但是对属于字符串的字段要将其各行的值合并成一行,好像做不到,比如
    有表 销售记录
    店名   vip卡号   金额   
    —————————————
    专卖一    a卡      100     
    专卖一    b卡     105     
    专卖二    c卡     100     
    专卖二    d卡     120     
    专卖三    e卡     100    
    专卖三    f卡     100   可以用 select 店名,sum(金额) from  销售记录 group by 店名
    计算出各装卖店营业额的汇总,得出
    店名    金额
    ——————
    专卖一  205
    专卖二  220
    专卖三  200
    如果我要得出下面这样的结果
    店名    卡号         金额
    ————————————
    专卖一  a卡,b卡     205
    专卖二  c卡,d卡     220
    专卖三  e卡,f卡     200应该怎样做?                 
      

  8.   

    我来了,这样实现:
    1.在SQL的查询分析器中选对你的数据库名,然后执行以下代码:CREATE FUNCTION dbo.f_str(@id varchar(50))RETURNS varchar(8000)ASBEGIN    DECLARE @r varchar(8000)    SET @r = ''    SELECT @r = @r + ',' + [vip卡号id]    FROM hj100-------------------------------注意你原来的表名这里我用了HJ100为表名    WHERE [店名]=@id    RETURN STUFF(@r, 1, 1, '')END
    2:你要得到你的结果只要执行以下查询语句:SELECt [店名],[vip卡号id]=dbo.f_str([店名]),sum([金额]) as 金额FROM hj100GROUP BY [店名],dbo.f_str([vip卡号id])----------------没有加排序,你自行加了
    /*结果
    专卖二 c卡,d卡 220
    专卖三 e卡,f卡 200
    专卖一 a卡,b卡 205
    */
      

  9.   

    存储过程更新其它表CREATE PROCEDURE  l_update  AS
    begin
    ------------将分组结果插入到名为MyTable的表中去
    INSERT INTO MyTable
      (x_a, x_b, x_c)
      SELECt 店名, vip卡号id = dbo.f_str(店名), sum(金额) as 金额
        FROM hj100
       GROUP BY 店名, dbo.f_str(vip卡号id)
    end;
      

  10.   

    GDTOPONE 你好,非常感谢,我测试可用了,会给你加分的,
    为了防止卡号重复,我在函数中加了distinct 但是报错
    请问可以怎么做
     
      

  11.   

    我使用表变量先insert distinct解决了,不过好像这样的函数没有通用性,在函数中不能用sp_executesql;
    我会给你40分以上
      

  12.   

    这是我第一次看到用自定义函数哦,谢谢GDTOPONE