wangjinxin2010412492
wangjinxin2010412492
采纳率75%
2016-10-24 03:56

怎么将sql语句查询的结果作为参数传递给存储过程

1
已采纳

创建了一个存储过程,有两个变量 ,现在想通过sql语句从一个表中查询的结果作为
参数传递给存储过程
exec [dbo].[Sp_replace_field_value5566] 'kehu_no' ,@b1,@b2
怎么将@b1和@b2换成sql语句图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • sxchen_csdn 凌岩歌-贰拾肆 5年前

    直接把sql写在存储过程里,直接获得sql查询的结果,都不需要从外部传入参数

    点赞 1 评论 复制链接分享
  • a369414641 山中小僧 5年前

    看看临时表或者表变量,应该可以解决你的需要

    点赞 1 评论 复制链接分享
  • wangjinxin2010412492 wangjinxin2010412492 4年前

    查询客户编码是否存在汉字

    select * from kehu where kehu_no like '%[吖-座]%'

    创建一个存储过程,通过传递两个参数旧编码和新编码。更新数据库中所有表的编码

    CREATE PROCEDURE [dbo].Sp_replace_field_value5566,
    @oldValue VARCHAR(90),
    @newValue VARCHAR(90))
    AS
    DECLARE @tableName VARCHAR(100)
    DECLARE @sqlStmt VARCHAR(100)

    BEGIN
    DECLARE tablenamecursor CURSOR FOR
    SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME ='kehu_no '

      OPEN tablenamecursor 
    
      WHILE 1 = 1 
        BEGIN 
            FETCH next FROM tablenamecursor INTO @tableName 
    
            IF @@fetch_status <> 0 
              BREAK 
            ELSE 
              BEGIN 
                  SET @sqlStmt = 'update ' + @tableName + ' set ' + @fieldName 
                                 + ' = ' + @newValue + ' where ' + @fieldName + 
                                 ' = ' + @oldValue 
                  PRINT @sqlStmt 
                  EXEC(@sqlStmt) 
              END 
        END 
      CLOSE tablenamecursor 
      DEALLOCATE tablenamecursor 
    

    END

    执行存储过程,变复制两个参数的值
    exec [dbo].[Sp_replace_field_value5566] 'kehu_no' , '''ZYS是''','''zyss'''

    检测是是否还有汉字
    select * from kehu where kehu_no like '%[吖-座]%'

    点赞 评论 复制链接分享

相关推荐