Sql server 创建将从字符串中删除数字的触发器

Sql server 创建将从字符串中删除数字的触发器,sql-server,triggers,Sql Server,Triggers,我创建了一个从字符串中删除数字的函数 create function RemoveNumber(@inp nvarchar(50)) returns nvarchar(50) as begin declare @out varchar(50) if (@inp is NOT NULL) begin set @out = '' while (@inp <> '') begin if (@inp like '[0-9]%')

我创建了一个从字符串中删除数字的函数

create function RemoveNumber(@inp nvarchar(50))
returns nvarchar(50)
as
begin
declare @out varchar(50)
if (@inp is NOT NULL)
begin
    set @out = ''
    while (@inp <> '')
    begin
        if (@inp like '[0-9]%')
            set @out = @out + substring(@in, 1, 1)
        set @inp = substring(@inp, 2, len(@in) - 1)
    end
end
return(@out)
end
它没有看到功能。但是如何从触发器内的RemoveNumber创建循环?(字段
名称
-
nvarchar(10)

我想您需要这个

create trigger ut_RemoverName on Worker
for insert
as
UPDATE w
SET Name = dbo.RemoveNumber(i.name)
FROM Worker w JOIN inserted i ON w.Id = i.Id

演示

我想您希望将set“set name=ut_RemoveNumber(name)”设置为“set name=RemoveNumber(name)”,这取决于RDM,您可能还需要用户资格,例如
dbo.RemoveNumber(name)
SQL只是结构化查询语言——许多数据库系统都使用这种语言,但不是数据库产品。。。很多事情都是特定于供应商的-因此我们确实需要知道您使用的是什么数据库系统(以及哪个版本).......................................对于SQL来说,“如何创建循环…”几乎总是一个错误的问题-您应该寻找一种方法,将您想要的任何操作应用到整个集合中。哦。我的错-我忘了提到ds-sql server 2012
create trigger ut_RemoverName on Worker
for insert
as
UPDATE w
SET Name = dbo.RemoveNumber(i.name)
FROM Worker w JOIN inserted i ON w.Id = i.Id