创建了一个存储过程,有两个变量 ,现在想通过sql语句从一个表中查询的结果作为
参数传递给存储过程
exec [dbo].[Sp_replace_field_value5566] 'kehu_no' ,@b1,@b2
怎么将@b1和@b2换成sql语句
直接把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 '%[吖-座]%'