まず、どのリレーショナルデータベース管理システムですか?
typeただし、それはテーブルの列またはストアドプロシージャの変数であると思われます。
Nnchar、は、次の文字列を、、nvarcharまたはnvarchar2(RDBMSに応じて)に変換していることを意味します。これらは、マルチバイト文字を許可するデータ型です。
'PC'と'P'は文字列です。
これをすべてまとめる'PC'と'P' 、マルチバイト文字セットに変換し、列または変数typeがこれらの文字列の1つと同じであるかどうかを確認します。
inまたはのいずれかとtype同じにすることができることを意味します。 'PC' 'P'
コメントから、SQL-Serverを使用しています
オブジェクト[dbo].[SP_AUTHENTIFICATION]が存在し、ストアドプロシージャ(P)またはアセンブリストアドプロシージャ(PC)であるかどうかを確認しています。
の列はそうtypeでsys.objectsはないncharので、変換はかなり無意味です。
ポイントごとに行く
IF EXISTS-括弧内の次のクエリの結果が行を返す場合:
SELECT * FROM sys.objects-から行を選択しますsys.objects
WHERE object_id =-ここで、object_idは次のようになります
OBJECT_ID(N'[dbo].[SP_AUTHENTIFICATION]')object_id-のを返す[dbo].[SP_AUTHENTIFICATION]
AND type in (N'P', N'PC')-そして、そのオブジェクトはストアドプロシージャです。
U、クエリに含まれていないものは、がテーブルであるかどうかを確認してtypeいます。ドキュメントには完全なリストがあります。