何が起こっているのかはかなり確信していますが、仲間のSQL Server Travelerからいくつかのアイデアを得たいと思っています(実際には何が起こっているのかははっきりしていますが、興味深い議論ができると思います)。BEGINとENDはありませんか?
私はこのバットマンを熟考してください...これで何が起こっていますか?
CREATE PROCEDURE ToBeDropped
AS
BEGIN
PRINT 'Drop me!';
END
DROP PROCEDURE ToBeDropped;
どうしますか?私の最初の考えは、手続きが作成されてすぐに削除されたことです。 Wrongo!そしてあなたはおそらく以前からの問題についてこれを知っていなければ同じと思っていたでしょう...認めてください!
SSMSでは、クエリ結果をテキストに切り替えるためにCtrl-Tを押します。その後、実行、次の(またはスクリプト新しい手順ToBeDroppedができます):
EXECUTE ToBeDropped;
再実行スクリプトに上記sys.sql_modulesクエリまたは試み対象:
SELECT m.[definition]
FROM sys.sql_modules AS m INNER JOIN sys.objects AS obj
ON m.object_id = obj.object_id
WHERE obj.name = 'ToBeDropped';
次の手順を実行します。それはもはや存在しないのでできません。
うーん...ここで何が起こっているの?明らかに暗黙のは、BEGIN、しばらくの手順に終止符があり、次のように:私は暗黙の行動の大ファンではない
CREATE PROCEDURE ToBeDropped
AS
BEGIN
BEGIN
PRINT 'Drop me!';
END
DROP PROCEDURE ToBeDropped;
END ;
:以下のような優れたルックスをフォーマットし
CREATE PROCEDURE ToBeDropped
AS
BEGIN
BEGIN
PRINT 'Drop me!';
END
DROP PROCEDURE ToBeDropped;
END;
。私は明白であることを好む。 TSQLは、より現実的になる方向に向かっています。セミコロンとすべてのCLR機能が現在利用可能であるか、TSQLで利用可能な可能性があります。少なくとも1つのBEGINとENDのペアを持つ必要があるCREATE PROCEDURE本体が必要です - BEGINのエイリアス/シノニムとENDのエイリアス/シノニムです - 私たちはTSQLの変換に一歩近づくでしょうC#に変換します。
思考?意見ですか?ありがとう!
これはディスカッションサイトではありません。これはQ&Aサイトです。 http://stackoverflow.com/faq#dontask –
を参照してください。この質問は、http://blog.stackoverflow.com/2011/07/itsの観点から書き直すと「十分に残っている」可能性があります。 -ok-to-ask-and-answer-your-own-questions/ – sarnold