0

PHPスクリプトに次のクエリがあります。

SELECT last_value FROM sys.identity_columns WHERE OBJECT_NAME(OBJECT_ID) = 'MYTABLE' AND last_value IS NOT NULL

これはうまく機能し、必要なものであるMYTABLEから最後のIDを返します。

ただし、複数のデータベースを使用する予定なので、MYTABLE があるデータベースを選択するようにクエリを変更する必要があります。

私がやっている:

SELECT last_value FROM sys.identity_columns WHERE OBJECT_NAME(OBJECT_ID) = 'mydatabase.dbo.MYTABLE' AND last_value IS NOT NULL

しかし、これはうまくいきません。見返りはありません。

何か案は?

どうもありがとう!

4

2 に答える 2

1

SQL ステートメントを実行すると、接続時に指定したデータベースのコンテキストで実行されます。別のデータベースにクエリを実行するには、データベース コンテキストを変更する必要があります。これを試して:

USE MyDatabase;

SELECT last_value FROM sys.identity_columns WHERE OBJECT_NAME(OBJECT_ID) = 'MYTABLE' AND last_value IS NOT NULL
于 2013-06-11T13:44:46.440 に答える
0

データベース名を変数IDENT_CURRENTとして渡す必要がある場合は、データベース修飾オブジェクト名を受け入れます。例えば:

SELECT  IDENT_CURRENT('mydatabase.dbo.MYTABLE');

無関係なことはさておき、使用する方が良いでしょう:

WHERE OBJECT_ID = OBJECT_ID(N'MYTABLE');

それ以外の

WHERE OBJECT_NAME(OBJECT_ID) = 'MYTABLE'

デフォルトのスキーマにない場合MYTABLEは失敗するため、テーブル MYSCHEMA.MYTABLE を検討してください。これは行を返しません

WHERE OBJECT_NAME(OBJECT_ID) = 'MYSCHEMA.MYTABLE'

一方、これは次のようになります。

WHERE OBJECT_ID = OBJECT_ID(N'MYSCHEMA.MYTABLE');
于 2013-06-11T13:48:03.940 に答える