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