随机抽取大量数据 然后在分配到到指定人员中

下面 是一个 例子  这个是要 导出的视图 

1 SELECT     a.ID, a.APP_NO, '业务预约' AS AppType, 'rv_Appoint' AS ShowInfoTypeName, c.ID AS CustID, c.CustName, c.CallIntoPhone, a.CarMarkName, c.CarNumber
2 FROM         dbo.SDTZ_Appoint AS a LEFT OUTER JOIN
3                       dbo.SDTZ_Customer AS c ON c.ID = a.CustID
4 WHERE     (a.DeleteFlag <> 1) AND (a.Status = '已反馈')
5 UNION ALL
6 SELECT     a.ID, a.APP_NO, '业务咨询' AS AppType, 'rv_Consultation' AS ShowInfoTypeName, c.ID AS CustID, c.CustName, c.CallIntoPhone, a.CarMarkName, c.CarNumber
7 FROM         dbo.SDTZ_Consultation AS a LEFT OUTER JOIN
8                       dbo.SDTZ_Customer AS c ON c.ID = a.CustomerID
9 WHERE     (a.DeleteFlag <> 1) AND (a.StatusCode IN (1, 5, 6, 8))

下面是对应的 存储过程 主要功能是 随机抽取 一定量的的 数据 导入到临时表中

ALTER PROCEDURE [dbo].[CteateTempTable]
@tblName varchar(1000) --表名
,@countNum varchar(20) --选取的数量
,@WhereCondition varchar(300) --选取的数量
,@output int output 
AS

DECLARE @sql_str  nvarchar(4000)
DECLARE @TotalCount int
BEGIN
select @TotalCount=COUNT(*) from sysobjects where xtype='U' and name=@tblName
if @TotalCount=1 
begin
 set @sql_str='drop  table '+@tblName;
EXEC(@sql_str)
        end
set @sql_str='SELECT  top '+@countNum+' *  into  '+@tblName+' FROM [SDTZCallCenter].[dbo].[v_AppReturn] '+@WhereCondition+' order by NEWID()'
EXEC(@sql_str)
        if @@rowcount>0
        begin
        set @output=1;
        return 1;
        end
        else 
        begin
        set @output=0;
        return 0;

        end
end

 

然后 你可以从你的这个 临时表里 进行  条件筛选  然后在 批量分配给 一些具体的人员

列名不一定要相同,只要你在Test 中列出要插入列的列表跟select   from   Test2 表中的选择的列的列表一一对应就可以了,

    当然两边的数据类型应该是兼容的。  
  比如:insert   into   Test  (fielda,fieldb,fieldc)   select   fieldx,fieldy,fieldz   from   Test2

当然 你可以  再加一些限制条件 top 10000或者 where 条件 筛选

 

转载于:https://www.cnblogs.com/jack-Star/p/3201075.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值