为什么在动态sql中不能使用inserted,deleted表?

CuZnRong 2004-06-10 02:53:33
小弟在学习动态sql的时候碰到一个问题,向大家请教!!

要求将如下trigger改成动态sql形式:
create trigger trigger_Test
on Table1
for insert as
begin
select Column1 from inserted
end

我改后为:
create trigger trigger_Test
on Table1
for insert as
begin
DECLARE @sSql varchar(255)
SELECT @sSql = 'select Column1 from inserted'

exec (@sSql)
end

触发这个trigger会报如下错误:
inserted not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).

在网上查了好多资料,都只是说inserted和deleted是两个临时表而已。我想知道究竟在动态sql中不能使用inserted,deleted表呢,还是我使用的方法不对?敬请大家指教,谢谢!
...全文
247 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
CuZnRong 2004-06-29
  • 打赏
  • 举报
回复
谢谢各位!!我学到不少!
飞天揽月 2004-06-25
  • 打赏
  • 举报
回复
up
hkzhou 2004-06-24
  • 打赏
  • 举报
回复
我用的是11.5 sybase central截面可能有区别,自己找找看 一定有这些选择项
hkzhou 2004-06-24
  • 打赏
  • 举报
回复
在sybase中没有full outer join, left join, right join ,inner join等等
在syabse leftjoin 只在 where子句中连接字段等号左边加 '*',right join 是 右边加

在sybase central 中点该数据库(db)的右键属性页中有(好象是option页 )
DDL in transaction,select into/bulk 什么的 点上就是了。
建议大家还是下点官方书籍来认真看看吧。在论坛上问 实际上还是很难全面了解sybase的
我以前也试过这个 感觉没什么收获 只好去吭书 那样了解的快哦
DontWorry 2004-06-23
  • 打赏
  • 举报
回复
对了今天发现不能使用 full join.
DontWorry 2004-06-23
  • 打赏
  • 举报
回复
To : hkzhou
请问怎样设置 select into
及 可在触发器中 create drop 等选项?
hkzhou 2004-06-22
  • 打赏
  • 举报
回复
还有 楼主所说的create ,drop等都是你自己的sybase配置中加了限制的 才不能用
hkzhou 2004-06-22
  • 打赏
  • 举报
回复
晕 DontWorry(不用當心) 不能这么片面看
实际上sybase也很不错的
首先create table #T在sybase中是可以的
top 关键字在sybase 中用
set rowcount N
来实现的
在from中嵌套视图是不行 但是你可以建视图来实现的

这些只是你的习惯问题,希望你能习惯sybase的风格
呵呵


hkzhou 2004-06-22
  • 打赏
  • 举报
回复
允许select into 选择项打开了吗?
CuZnRong 2004-06-18
  • 打赏
  • 举报
回复
急啊!
DontWorry 2004-06-18
  • 打赏
  • 举报
回复
我也是刚开始用 sybase,

以前一直用sqlServer 用得蛮好的
create table #t 不行,表变量也不行
top 关键字也不行
select ... from (子查询也不行)

sybase 好像比 sqlServer 差好多啊.
DontWorry 2004-06-18
  • 打赏
  • 举报
回复
既然不能用select * into
那 create table #t 总可以吧?
CuZnRong 2004-06-15
  • 打赏
  • 举报
回复
急啊!
CuZnRong 2004-06-14
  • 打赏
  • 举报
回复
不对啊,我用的是Sybase 12.5,是不能使用select into语句的啊???
(SELECT INTO command not allowed within a trigger. )

我查了查Sybase的说明文档,还有象//参考http://dev.csdn.net/Develop/article/27/27877.shtm中是用的create和drop语句等都是不允许在trigger中是用的啊???

这是怎么回事,请大家赐教!!!
DontWorry 2004-06-12
  • 打赏
  • 举报
回复
exec (@sSql)是开启了另外段会话,在它里面是更本不认识 Inserted table 的.

可以这样:
SELECT * INTO #Inserted FROM Inserted
SELECT @sSql = 'select Column1 from #Inserted'
//参考http://dev.csdn.net/Develop/article/27/27877.shtm
CuZnRong 2004-06-11
  • 打赏
  • 举报
回复
自己顶起来!

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧