我用的是SqlServer,想利用缓存触发器依赖性实现前端的数据呈现 依靠这个触发器建立的lechange.txt来实时删除缓存值。
触发器如下:
CREATE TRIGGER UpdateCache
ON aaa
FOR UPDATE, DELETE, INSERT
AS
DECLARE @cmd Varchar( 200 )
SELECT @cmd = 'echo ' + Cast( getDATE() As Varchar( 50 ) ) +
' > c:\ leChange.txt'
EXEC master..xp_cmdshell @cmd, no_output
我试了,在c盘下能生成leChange.txt,当我第一次修改数据库表时,leChange.txt会在里面加一行
值,但再修改,删除,增加就不会在里面写值了,这样,也就没达到缓存触发器依赖性,请问如何做?
触发器如下:
CREATE TRIGGER UpdateCache
ON aaa
FOR UPDATE, DELETE, INSERT
AS
DECLARE @cmd Varchar( 200 )
SELECT @cmd = 'echo ' + Cast( getDATE() As Varchar( 50 ) ) +
' > c:\ leChange.txt'
EXEC master..xp_cmdshell @cmd, no_output
我试了,在c盘下能生成leChange.txt,当我第一次修改数据库表时,leChange.txt会在里面加一行
值,但再修改,删除,增加就不会在里面写值了,这样,也就没达到缓存触发器依赖性,请问如何做?
解决方案 »
- 'System.ICloneable' is inaccessible due to its protection level
- 关于winform中的进度条
- 请问为什么这段JS单独可以运行,加到其他项目会说var parent = targetElement.parentNode;缺少对象
- 急!!!asp.net页面局部刷新的问题
- asp.net 访问本地机目录失败:Access to the path ...... is denied.
- 如何使文本框中只能输入数字,不能输入其他字符或汉字?如保判断网址格式(正则表达式)?急!!!
- 怎么在点击left框架的web button定向页面test.aspx到main框架啊
- QQ群来讨论asp.net
- 各位高手--帮忙?????
- 怎么在asp.net将连接的数据库中的数据显示出来
- 甩分了!!!关于TREE VIEW如何实现只允许鼠标选择节点,键盘无效?
- 怎样才能将本页面的一个数组或对象(服务端)送到本页的javascript代码里啊?up有分
drop trigger updatecache
go
CREATE TRIGGER UpdateCache
ON aaa
FOR UPDATE, DELETE, INSERT
AS
DECLARE @cmd Varchar( 200 )
SELECT @cmd = 'echo ' + Cast( getDATE() As Varchar( 50 ) ) +
' > c:\leChange.txt'
EXEC master..xp_cmdshell @cmd, no_output
declare @say nvarchar(2000)
set @say='please check the command ---->'+@cmd
print @say
go
在c盘下能生成leChange.txt,当我第一次修改数据库表时,leChange.txt会在里面加一行
值,但再修改,删除,增加就不会在里面写值了,这样,也就没达到缓存触发器依赖性
go
create table #a(line nvarchar(1000))
go
if object_id('aaa') is not null drop table aaa
go
create table aaa(row int identity primary key,
version varchar(20) default cast(getdate() as varchar(20)))
go
if object_id('updateCache') is not null drop trigger updateCache
go
CREATE TRIGGER UpdateCache
ON aaa
FOR UPDATE, DELETE, INSERT
AS
DECLARE @cmd Varchar( 200 )
SELECT @cmd = 'echo ' + Cast(newid() as varchar(40) ) +
' > c:\leChange.txt'
EXEC master..xp_cmdshell @cmd, no_output
print 'please check the command ---->'+@cmd
SELECT @cmd = 'type c:\leChange.txt'
delete #a
insert into #a EXEC master..xp_cmdshell @cmd
select left(line,70) as [文件内容] from #a
go
print 'test 1'
insert aaa default values
select * from aaa
print 'test 2'
update aaa set version=dateadd(month,1,version)
select * from aaa
print 'test 3'
delete aaa
select * from aaa
go
我看你大概是对自己的触发器运行误会了。如果触发时间很短,写入文件是时间完全一致,可能会误认为没有写入。