DelphiでSQL ServerとADOを使用しており、レポートプログラムで使用する一時テーブルを作成しています。表中の テーブルスキーマの変更があります
- :
プログラムの流れはこのようなものです。
- SQLクエリによるテーブルの削除。
これは通常動作しますが、一部のお客様は「ドロップテーブル」が「無効なオブジェクト名」というエラーで失敗することを定期的に訴えています。
私は、顧客データベースへのリモートアクセスを得ることができる、と私は、次の見た:
- をテーブルXは(デルファイで)一覧表に示されているDelphiで
- 、テーブルを開いたりすることができません削除されました。
- テーブルスキーマは "dbo"ではなく "Server \ 1"です。
このテーブルのテーブルスキーマはどのように変更できますか?この問題はどのように処理する必要がありますか?なぜそれは時々、時にはうまくいかないのですか?
dboスキーマで一時テーブルを作成する代わりに、テンポラリテーブル(例:#TempTable)を使用する方が効果的です。他のユーザには表示されません(MS SQLサーバはその名前に一意の接尾辞を追加します)。 – kobik
(1)スキーマを明示的に指定せずにテーブルを作成すると、デフォルトが割り当てられます。 (2)デフォルトは、テーブルの作成時にログインしたユーザによって異なります。 **解決法**単に明示的にしてください。 –
非常に大きなコードベースを持っているので、すべてのSQLクエリーを '[dbo]'プレフィックスに変更するのは非常に難しいでしょう。しかし、私は "CREATE TABLE"のすべての出現箇所を検索して見つけ出し、それらを変更することができました。これは使えますか? –