ホームページ >データベース >mysql チュートリアル >構文エラーを回避するためにストアド プロシージャの作成を動的に処理する方法
質問:
クライアントでストアド プロシージャを作成する SQL スクリプトを実行する場合データベース、構文を回避するために特定のストアド プロシージャがすでに存在するかどうかを確認するにはどうすればよいですかエラー?
答え:
これを実現するには、次のアプローチを使用します:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND OBJECT_ID = OBJECT_ID('dbo.MyProc')) exec('CREATE PROCEDURE [dbo].[MyProc] AS BEGIN SET NOCOUNT ON; END') GO ALTER PROCEDURE [dbo].[MyProc] AS ....
説明:
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND OBJECT_ID = OBJECT_ID('dbo.MyProc'))
exec('CREATE PROCEDURE [dbo].[MyProc] AS BEGIN SET NOCOUNT ON; END')
ALTER PROCEDURE [dbo].[MyProc] AS ....
このアプローチを使用すると、作成中にストアド プロシージャの存在を動的に処理でき、ストアド プロシージャが必要な場合にのみ作成され、それ以外の場合は変更されることが保証されます。
以上が構文エラーを回避するためにストアド プロシージャの作成を動的に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。