zoukankan      html  css  js  c++  java
  • 动态sql

    declare @sql nvarchar(2000)

    declare @Sign_Count int

    declare @tablename varchar(30)='SignUpSuccess.Record201605'

    DECLARE @IN_iUserDBID bigint=100051

    DECLARE @IN_biSubMatchSerialNo varchar(255)='2016050403'

    set @sql='select @Sign_Count=count(1)  from '+ @tablename +' where  UserDBID='+convert(varchar(255),@IN_iUserDBID)+' and  MatchSerialNo='+convert(varchar(255),@IN_biSubMatchSerialNo)+'  and convert(date,QuitTime)=convert(date,getdate())'

    --select @sql

    exec sp_executesql @sql, N'@Sign_Count int out ', @Sign_Count out

    动态sql 2


    DECLARE @SQLString nvarchar(500);  
    DECLARE @ParmDefinition nvarchar(500);  
    declare  @inPropID varchar(255)='31,37';
    declare @BusinessEntityID int  ;
    /* Build the SQL string one time.*/  
    SET @SQLString =  
         N'select aa.AccountRecever from
        (
            select aa.AccountRecever,cc.ProductID
            from OrderDetail  aa
            inner join [OrderDetail.Product] bb on aa.OrderNum=bb.OrderNum
            inner join [Product.ExchangeRelationship] cc on bb.ExchangeRelationshipID=cc.id
            where  aa.OrderState=2
            and aa.ProductTypeID=3
            and (@inPropID is null  or convert(varchar(20),cc.ProductID) in(@inPropID))
            group by aa.AccountRecever,cc.ProductID
        )aa
        group by  aa.AccountRecever
        having COUNT(1)>=@BusinessEntityID
        ';  
    SET @ParmDefinition = N'@BusinessEntityID tinyint,@inPropID varchar(255)';  
    /* Execute the string with the first parameter value. */  
    EXECUTE sp_executesql @SQLString, @ParmDefinition,  
                          @BusinessEntityID = 1
                          ,@inPropID='31,37'  ; 

    动态sql 3 中间加了top

    declare @v_Now datetime=getdate()
    DECLARE @SQLString nvarchar(2000);  
    DECLARE @ParmDefinition nvarchar(500);  
    declare  @inUserid  int=1001296;
    declare @n_Count int
    select @n_Count=15 - COUNT(1) from   [UserInfo.DailyTaskInfo] where UserID=@inUserID
    --select  @n_Count
    SET @SQLString =  
         N'INSERT INTO [UserInfo.DailyTaskInfo]
                   ([UserID]
                   ,[TaskID]
                   ,[ProduceTime]
                   ,[UserCompleteNumber]
                   ,[TaskAchieveStateID]
                   ,[FirstReceiveTime]
                   ,[CompleteTime]
                   ,[GetRewardTime]
                   ,[OrignalAchievementID])           
        select top (@n_Count)  @inUserID,aa.ID,@v_Now, 0,1,null,null,null,aa.ID
        from TaskInfo  aa
        left join [UserInfo.DailyTaskInfo] bb on aa.ID=bb.OrignalAchievementID
        where aa.ParentID=0 /*必须分父级任务,非父级任务已经在前面更新了,随机的任务也全部是0*/
        and aa.AbleFlag=1 /*启用*/
        and aa.EffectTime<=@v_Now and ISNULL(ExpiratTime,'''+'9999-12-31'+''')>=@v_Now /*未过期*/
        and aa.IfDeleteFlg=1 /*未删除*/
        and bb.UserID is null /*用户未分配该条父级任务*/
        order by row_number()over(order by abs((aa.RandomOrFixFlag-1)*CHECKSUM(NEWID())),aa.TaskUpdateCycleID) /*优先选择固定任务(因为固定的ID为1所以用RandomOrFixFlag-1保证固定的全部优先),按天更新的任务(按天更新表示每天都应该出现这个固定任务,故为最优先)*/
      ';  
    --select @SQLString
    SET @ParmDefinition = N'@n_Count int,@inUserid  int,@v_Now datetime';  
    /* Execute the string with the first parameter value. */  
    EXECUTE sp_executesql @SQLString
                        , @ParmDefinition
                        , @n_Count
                        ,@inUserID
                        ,@v_Now  ;  
     

  • 相关阅读:
    图解SQL的Join(转)
    phpmyadmin 自动登录的办法
    ajax的data传参的两种方式
    如何在vue里面访问php?
    vue 路由部署服务器子目录问题
    Vuthink正确安装过程
    关于vueThink框架打包发布的一些问题
    使用npm安装依赖,尽量别使用cnpm,会漏掉很多依赖的
    phpstorm(或webstorm) 打开后 一直停留在scanning files to index....,或跳出内存不够的提示框
    vuethink 配置
  • 原文地址:https://www.cnblogs.com/liu-shiliu/p/5549397.html
Copyright © 2011-2022 走看看