如何在Delphi中获得SQL server 数据库中的某 找库房管理软件免费版
如何获取触发器,如果没有触发器就加入触发器,如果有找到触发器就不在加入触发器!!
2楼: 我顶!!! 如服装店库存软件
3楼: 我在顶!!!!
4楼: if not exists(select * from sysobjects where name=''ss_m_del'' and xtype=''TR'')
begin
declare @sql nvarchar(255)
set @sql=''CREATE TRIGGER ss_m_del ON [dbo].[SS_M] ''+ char(13)
set @sql=@sql + ''FOR DELETE ''+ char(13)
set @sql=@sql + ''AS''+ char(13)
set @sql=@sql + '' delete SS_D from SS_D a,deleted b where a.ss_id=b.ss_id''
exec(@sql)
end
5楼: to 刘学军,
我试下,我觉得你的思路很正确,可是好象你的ON后面只指定数据库好象没有指定具体一个表?
先试下,谢谢你~!~!!~~
6楼: to 刘学军,
你的代码不是针对delphi写的,我现在写的时候遇到两个问题:
一:在delphi中,好象不认exists ,也就是你那个上面我不知道怎么修改?
二:我用查询分析器时,我的代码是:
if not exists(select * from sysobjects where name=''trigger_logtb'' and xtype=''TR'')
begin
declare @sql nvarchar(255)
set @sql=''CREATE TRIGGER trigger_logtb ON logtb''+ char(13)
set @sql=@sql + ''FOR insert ''+ char(13)
set @sql=@sql + ''AS''+ char(13)
set @sql=@sql + ''declare @edate char(10)''
set @sql=@sql + ''set @edate=convert(char(10),getdate(),120)''
set @sql=@sql + ''UPDATE sparc SET beactive=''否'' where @edate>''2006-01-06''''
exec(@sql)
end
它会报错:1.''否'' 附近有语法错误和2.''2006'' 附近有语法错误。
如何修改????
我是菜鸟!!
库存管理软件版7楼: 顶!!!!
8楼: 我顶!!!!!!
各位大哥,帮我看下啊!11
9楼: to 刘学军,
我顶~!~!
帮帮小弟呀!
10楼: 顶起!~![:(!]
11楼: 晕
那段代码只是SQL语句,只要SQL语句能正确执行,一般把它做为string付给*.SQL.Text就可以了
12楼: to softecn
我知道那是SQL语句,可是我就在查询分析器里执行时报错,
if not exists(select * from sysobjects where name=''trigger_logtb'' and xtype=''TR'')
begin
declare @sql nvarchar(255)
set @sql=''CREATE TRIGGER trigger_logtb ON logtb''+ char(13)
set @sql=@sql + ''FOR insert ''+ char(13)
set @sql=@sql + ''AS''+ char(13)
set @sql=@sql + ''declare @edate char(10)''
set @sql=@sql + ''set @edate=convert(char(10),getdate(),120)''
set @sql=@sql + ''UPDATE sparc SET beactive=''否'' where @edate>''2006-01-06''''
exec(@sql)
end
这个怎么会报错,1.''否'' 附近有语法错误和2.''2006'' 附近有语法错误。
我不会修改,只要能在SQL执行能通过就可以了!!! 帮我一下 如库房管理软件免费版
13楼: 呵呵,抢分哦,修改成这样,trigger_logtb是你要加的触发器名称,logtb是触发器所在的表
if not exists(select * from sysobjects where name=''trigger_logtb'' and xtype=''TR'')
begin
declare @sql nvarchar(255)
set @sql=''CREATE TRIGGER trigger_logtb ON logtb''+ char(13)
set @sql=@sql + ''FOR insert ''+ char(13)
set @sql=@sql + ''AS''+ char(13)
set @sql=@sql + ''declare @edate char(10)''
set @sql=@sql + ''set @edate=convert(char(10),getdate(),120)''
set @sql=@sql + ''UPDATE sparc SET beactive=''''否'''' where @edate>''''2006-01-06''''''
exec(@sql)
end
库存管理软件版14楼: 哈哈 ,好了,放分!!!
15楼: 多人接受答案了。