2017-10-05 60 views
0

我有一个函数可以删除任何非字母数字字符,并且可以对EMIR表执行多次更新的存储过程。我的问题是,我怎么写的更新语句来调用函数RemoveNonAlphaNumericCharacters和更新域“Underlying_Security_Name”在更新中使用SQL用户定义函数

USE EMIR 
GO 
ALTER FUNCTION [dbo].[RemoveNonAlphaNumericCharacters] 
(
-- Add the parameters for the function here 
@String NVARCHAR(100) 
) 
RETURNS nvarchar(100) 

AS 
BEGIN 
DECLARE @Keep_Value AS NVARCHAR(50) 
SET @Keep_Value = '%[^a-z0-9 ]%' 

WHILE PATINDEX(@Keep_Value, @String) > 0 
BEGIN 
    SET @String = STUFF(@String, PATINDEX(@Keep_Value, @String), 1, '') 
END 

RETURN @String 
END 

GO 
+0

程序代码是**高度特定于供应商的** - 所以请添加一个标签以指定您是使用mysql,postgresql,sql-server,oracle还是db2 ' - 或者其他的东西。 –

+1

尝试'更新emir set underlying_security_name = dbo.RemoveNonAlphaNumericCharacters(underlying_security_name)' –

回答

2

你可以做这样的事情。

UPDATE EMIR.table_name 
SET Underlying_Security_Name = dbo.RemoveNonAlphaNumericCharacters(Underlying_Security_Name​); 
相关问题