0

私たちのアプリの 1 つで、sqlanywhere と sql server の両方で動作する必要がある powerbuilder データウィンドウがあります。両方のdbmsでデータウィンドウが接続されているテーブルには、主キーの一意の列があります。新しい行を挿入すると、ドライバーまたは sqlanywhere のデータベースは、まだテーブルにない値を渡しますが、SQL サーバーに対して同じ挿入を行うと、既にテーブルにある値 1 を渡すため、挿入は失敗します。これはSQL Serverとpowerbuilderに関連する質問かもしれませんが、どこにも答えが見つからなかったので、ここで質問すると思いました。誰かが以前に経験したことがあるかもしれません.

ありがとう

4

1 に答える 1

0

一日を過ごした後の私自身の問題に対する答えは次のとおりです。挿入前トリガーを介してSQLサーバーに値を挿入する際に問題が発生した列の一意のキーを生成していました(SQLではそれが許可されています)。このトリガーは、挿入がdbmsに送信される前に実際に一意のキーを計算しており、キーを正しく計算していました。ただし、「挿入」トリガーの代わりに「挿入」トリガーを介してSQLサーバーに実装された場合の同じトリガー(SQLサーバーはそれを許可します)は、バグのために一意キーの計算に失敗していました。私がそれを修正したら、それは問題を解決しました。Powerbuilderデータウィンドウ自体はそれとは何の関係もなく、その列に設定された初期値(初期値がある場合)をdbmsに渡していました。これがお役に立てば幸いです

于 2012-10-03T12:16:49.643 に答える