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

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

3个回答

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

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

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

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 '%[吖-座]%'

立即提问
相关内容推荐