我想实现的是一个 sql的 insert触发器,它在一个renyuan表增加一条记录时执行.然后创建另一个以刚插入学号
use实验室gocreatetriggerrenyuan_inserton人员表afterinsertasdeclare@SNOvarchar(50)BEGINSET@S...
use 实验室
go
create trigger renyuan_insert on 人员表
after insert
as
declare @SNO varchar(50)
BEGIN
SET @SNO = INSERTED.学号
CREATE TABLE @SNO
(
大时间 datetime not null,
小时间 smalldatetime not null,
primary key(大时间,小时间)
)
END
这样写触发器为什么总有语法错误
以刚插入学号字段为表名的新表,这个触发器怎么写
可否写得详细一点.
或者帮我修改一下也好 展开
go
create trigger renyuan_insert on 人员表
after insert
as
declare @SNO varchar(50)
BEGIN
SET @SNO = INSERTED.学号
CREATE TABLE @SNO
(
大时间 datetime not null,
小时间 smalldatetime not null,
primary key(大时间,小时间)
)
END
这样写触发器为什么总有语法错误
以刚插入学号字段为表名的新表,这个触发器怎么写
可否写得详细一点.
或者帮我修改一下也好 展开
1个回答
展开全部
use 实验室
go
create trigger renyuan_insert on 人员表
after insert
as
declare @SNO varchar(50)
declare @SQL varchar(200)
BEGIN
SELECT @SNO = 学号 FROM INSERTED
SET @SQL='CREATE TABLE S'+@SNO+'(大时间 datetime not null,小时间 smalldatetime not null,primary key(大时间,小时间))'
EXECUTE(@SQL)
END
----------------------------------------------------------------------------
说明:假如你的学号是10060,则创建的表名就是s10060,因为表名不能是数字开头的!
go
create trigger renyuan_insert on 人员表
after insert
as
declare @SNO varchar(50)
declare @SQL varchar(200)
BEGIN
SELECT @SNO = 学号 FROM INSERTED
SET @SQL='CREATE TABLE S'+@SNO+'(大时间 datetime not null,小时间 smalldatetime not null,primary key(大时间,小时间))'
EXECUTE(@SQL)
END
----------------------------------------------------------------------------
说明:假如你的学号是10060,则创建的表名就是s10060,因为表名不能是数字开头的!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询