在建立一个网站,想着在用户表插入内容的同时,利用表中(用户账号,用户密码)两项自动创建新的数据库账号,并且赋予某表的权限。但无奈这三脚猫功夫,实在过不了。附上代码,劳烦各位看一下:
create trigger new_account on yonghu
for insert
as
BEGIN
DECLARE @ACCOUNT VARCHAR(10)
DECLARE @PW VARCHAR(20)
SELECT @ACCOUNT=inserted.用户账号 from inserted
SELECT @PW=inserted.用户账号 from inserted
If not exists (select Book.用户帐号 from yonghu where Book.用户帐号=@ACCOUNT)
BEGIN
CREATE LOGIN [inserted.用户账号] WITH PASSWORD=inserted.用户密码, DEFAULT_DATABASE=[WANGZHAN], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [WANGZHAN]
GO
CREATE USER [inserted.用户账号] FOR LOGIN [inserted.用户账号]
GO
USE TOSEE
GRANT Alter,Delete,Insert,Select,Update ON WENZHANG TO inserted.用户账号
GRANT Select,Update ON yonghu TO inserted.用户账号
GO
END
ELSE
BEGIN
RAISERROR('该账号已被注册',16,1)
ROLLBACK
END
END
报错信息如下:
消息 102,级别 15,状态 1,过程 new_account,行 11 [批起始行 0]
“inserted”附近有语法错误。
消息 15007,级别 16,状态 1,第 15 行
'inserted.用户账号' 是无效登录名或您没有相应的权限。
消息 102,级别 15,状态 1,第 18 行
“.”附近有语法错误。
消息 102,级别 15,状态 1,第 19 行
“.”附近有语法错误。
消息 156,级别 15,状态 1,第 22 行
关键字 'ELSE' 附近有语法错误。
消息 102,级别 15,状态 1,第 27 行
“END”附近有语法错误。
麻烦各位了。