关于触发器和存储过程中的alter的提问

Kandy Kandy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有一个表ITEM用来存储需要维护的项目
另一表onedetail用来存储具体的数据
因为需求方有时候需要增加或者修改删除需要维护的项目,也就确定了onedetail数据的列的不确定性,比如人事管理,包括工号,姓名,性别,民族列,如果他想再增加一个文化程度的列,我把列的信息都保存在ITEM中,想实现的是在ITEM表里每+一条数据的时候这条数据的ITEMNAME段里的内容给ONEDETAIL表作为一个列名+上
做如下触发
create trigger tr_add_up on item for insert
as

declare @col_add_name varchar(50)

select @col_add_name=itemname from inserted

alter table onedetail ADD @col_add_name varchar(50) NULL

提示@col_add_name出错,查看一本SQL SERVER6.5的手册提到触发器不能用alter,我用的SQL SERVER2000,后来把最后一句改成alter table onedetail ADD xddx varchar(50) NULL
运行正常,且在ITEM中+一条数据其数据ONEDETAIL表中就会添加名为XDDX的列
既然不支持ALTER怎么改了以后怎么会最后一句成功呢?
我又试了在存储过程中仍然是变量出错……
究竟存储过程中是不能调用ALTER的问题,还是我语句的问题?针对我说的情况如果不采用触发用什么其他的方法好呢?程序免谈……就是为了省事才用这些……
...全文

相关推荐

SQL Server数据库实验_存储过程与触发器设计.docx

这些实验可以帮助我们更深入地理解和掌握存储过程和触发器的使用技巧,同时强调了它们在实际数据库应用中的重要性。总结起来,SQL Server中的存储过程和触发器是数据库开发中的重要工具。

AI算法攻城狮

【MySQL】视图/存储过程/触发器 详解

存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合;调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的;存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。封装,复用​ 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。可以接收参数,也可以返回数据​ 在存储过程中,可以传递参数,也可以接收返回值。减少网络交互,效率提升​ 如果涉及到多条SQL,每执行一次都是一次网络传输。

yimengsama

sybase 存储过程,视图 ,触发器等语法大全

sqlDROP TRIGGER trg_InsertEmployee ON Employees;```### 总结Sybase IQ 中的存储过程、视图和触发器都是数据库中重要的组成部分,它们提供了强大的功能来管理和操作数据

wangsuning_601991682

练习利用PLSQL Developer编写和管理存储过程、存储函数和触发器等

一、存储过程存储过程是数据库中的一种程序单元,它可以执行一系列的SQL语句来完成特定的任务。在PLSQL Developer中,用户可以创建、编译、执行和管理存储过程。1.

justhangon

oracle存储过程和触发器

#### 存储过程:功能与优势**1. 功能定义**存储过程是预编译并存储在数据库中的PL/SQL代码块。它接受输入参数,处理数据,并可能返回结果。

xcr1982
评论 4
收藏 已收藏
分享
返回顶部
Kandy
疑难问题 22,298 成员 121,727 内容