2017-01-05 6 views
1

以前にsybaseテーブルが更新/追加されているかどうかを知る方法があるのでしょうか?テーブルは一般的なもので、私はトリガを使用することや、updateDateフィールドのようなものを作成することはできません。行数の変更を確認することはオプションではありません。以前にsybaseテーブルが更新されていないか確認してください

私の最初のアイデアはsysobjectsテーブルを確認することでしたが、以下のSQLを使用して見てから、私のケースを解決するための有用な情報を格納している列はないと思います。

select name,userstat,uid, type, sysstat, indexdel, schemacnt,sysstat2,sysstat3, crdate,expdate,deltrig,instrig,ckfirst,cache, objspare,versionts,loginame,identburnmax,spacestate,erlchgts,lobcomp_lvl 
from sysobjects o where type = 'U' 

テーブルが更新されているかどうかを知る方法は他にありますか?

+0

テーブルが更新されたかどうか、または特定の_time_で更新されたかどうかを確認することに興味がありますか?後者の場合は、テーブルに最後に更新された時間の列を追加することができます。 –

+0

後者、それは私が疑ったもの。他にも可能な方法があることを確認したいだけです。 – Rudy

+0

別の方法があるとしても、それはSybase特有のものかもしれません。つまり、別のデータベースに移植したりサポートしたりしていたら、そこではうまくいかないかもしれません。 –

答えて

1

datachange機能を使用する方法が見つかりました。

enter image description here

フィールド "変更":

select convert(varchar(30),o.name) AS table_name, 
row_count(db_id(), o.id) AS row_count, 
datachange('AAA_TABLE', null, null) AS changes 
from sysobjects o 
where type = 'U' and o.name='AAA_TABLE' 
order by table_name 

は、テーブルの結果を更新する前だった: enter image description here

SQLの下で更新した後:

update AAA_TABLE set TYPE='1234' where ID=1 //previously TYPE was 1233 

結果に変更しました更新されました新しい価値をお持ちの方には、これは良い解決策だと思われますが、私はまだ他のアイデアを公開しています。

関連する問題