假設聯繫人表中只有3個字段:
LinkManId:聯繫人編號,該字段為自動增長的。
LinkManName:聯繫人姓名。
LinkManNameLetter:聯繫人姓名對應的拼音字母。
那麼,可以使用以下語句來創建一個觸發器:
CREATE TRIGGER LinkMan_Insert --觸發器名為LinkMan_Insert
ON LinkMan --觸發器作用在LinkMan
AFTER INSERT --在插入數據之後觸發該觸發器
AS
BEGIN
--姓名變量
declare @LinkManName varchar(50)
--姓名的拼音
declare @LinkManName_spell varchar(50)
--臨時使用的變量
declare @tempStr varchar(10)
--用於循環計數的變量
declare @id int
--在插入的記錄中查詢聯繫的人姓名
select @LinkManName = LinkManName from inserted
--如果姓名為空,則把變量設為空字符串
if @LinkManName is null
set @LinkManName = ''
--初始化計數器
set @id = 1
--初始化姓名的拼音變量
set @LinkManName_spell = ''
--通過循環獲得姓名中的每一個字符
while @id <= LEN(@LinkManName)
begin
--從letter表中查到字符所對應的第一個拼音字母
select top 1 @tempStr = spell_simple from letter where letter = SUBSTRING(@LinkManName,@id,1)
--將拼音字母賦值給姓名的拼音變量
set @LinkManName_spell = @LinkManName_spell + @tempStr
--計數器加一
set @id = @id + 1
end
--在插入的記錄中添加字母字段的內容
update LinkMan set LinkManNameLetter = @LinkManName_spell
where LinkManId = @@IDENTITY
END
GO
沒有留言:
張貼留言