Sybaseインスタンスのデータベースには約20のテーブルがあり、テーブルのロックスキーマを見つける必要があります。ロックスキーマが見つかったら、同じ20個のテーブルを持つ他のデータベースでそれを比較する必要があります。 build-ASE16 SP2
以下を使用して、ASEデータベース内の各ユーザーテーブルのロックスキーマを決定します。
_SELECT TableName = CONVERT(VARCHAR(30), so.name)
, LockScheme = CONVERT(VARCHAR(30), lockscheme(so.id))
FROM sysobjects so
WHERE so.type IN ('S', 'U');
_
CONVERT(VARCHAR(30), xxx)
は、コンソールセッションで出力を見やすくするためのものです。 GUIツールを使用してASEインスタンスに接続している場合は、おそらく必要ありません。 30文字を超えるテーブル名がある場合、出力では切り捨てられることに注意してください。
両方のインスタンスでそれを実行し、単純に BeyondCompare または他の差分ツールの出力を比較します。
マックスが示唆したように、私のために働いた答えを追加しました。
これはASE16 SP2バージョンです。
データベースオブジェクトにAllPages Lockスキーマがあるかどうかを確認するには
select name 'AllPages Lock Tables', sysstat2 from sysobjects where type = 'U' and sysstat2 & 8192 = 8192 and name = **"<obj name>"**
データベースオブジェクトにDataPages Lockスキーマがあるかどうかを確認するには
select name 'DataPages Lock Tables', sysstat2 from sysobjects where type = 'U' and sysstat2 & 16384 = 16384 and name = **"<obj name>"**
データベースオブジェクトにDataRows Lockスキーマがあるかどうかを確認するには
select name 'DataRows Lock Tables', sysstat2 from sysobjects where type = 'U' and sysstat2 & 32768 = 32768 and name = **"<obj name>"**