まず、どのリレーショナルデータベース管理システムですか?
type
ただし、それはテーブルの列またはストアドプロシージャの変数であると思われます。
N
nchar
、は、次の文字列を、、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
います。ドキュメントには完全なリストがあります。