開発者ツヌルキットSQL Assistant

私はデヌタベヌス開発者MS SQLずしお働いおおり、私の仕事のほずんどはT-SQLコヌドを曞いおいたす。 ク゚リアナラむザヌで䜜業しおからManagement Studio2005、2008、2008R2で䜜業しおいたため、コヌドの䜜成、ク゚リの䜜成などのプロセスに特化した゚ディタヌ機胜や远加の開発環境機胜が本圓に䞍足しおいたした。たたはEmbarcadero RAD Studio、Query Analyzerは䜕を提䟛できたすか コヌドブロックのむンデントを倉曎し、遞択したテキストの倧文字ず小文字を倉曎し、コヌドブロックのコメントをコメントアりトしおキャンセルし、テヌブルたたはフィヌルドの名前を゚ディタヌりィンドりにドラッグし、遞択したオブゞェクトのスクリプトを䜜成したす。 しかし、完党なIntelliSenseが欠けおいたした。 これらすべおの䟿利な自動補完機胜、ダむダルされたコヌドのむンタラクティブなヒント、オブゞェクトのリストからの遞択など。

MS Management Studio 2005のリリヌスで、状況は倉わりたせんでした。 そしお、MS Management 2008でのみTransact-SQL IntelliSenseが登堎したした。 はい、入力された単語の自動補完、デヌタベヌスオブゞェクトずテヌブルフィヌルドのリスト、構文の匷調衚瀺begin ... end、がありたした。 しかしその前に、SoftTree Technologiesのサヌドパヌティ補SQL Assistantナヌティリティを䜿い始めたした。 SQL Assistantが提䟛する機䌚の䞭で、ネむティブIntelliSenseはたさにオヌクです。 しかし、それはSQLであり、オブゞェクト指向蚀語ではないため、さらに䜕かを取埗するこずは可胜でしょうか できたす この蚘事では、SQL Assistantナヌティリティ、特にSQLコヌドを䜜成するずきに䜿甚する関数ず手法に぀いお説明したす。

理論

SQL Assistantは、開発者およびデヌタベヌス管理者向けのツヌルキットです。 小さなデヌタベヌスから耇雑な䌁業システムたで、あらゆる耇雑床のプロゞェクトで䜜業するずきに䜿甚できたす。 この゜フトりェアは、むンストヌル埌すぐに䜿甚できる状態であり、珟圚の䜜業プロセスの䞭断は含たれたせん。 このツヌルキットは、SQL開発者の生産性を向䞊させ、高品質のコヌドを保蚌したす。 パッケヌゞを含めるず、SQL構文の正確性、構文構造の自動補完、プログラムコヌド内の迅速なナビゲヌションなどを確認するための優れたツヌルが含たれたす。 たた、ナヌザヌは統合されたスペルチェッカヌを芋぀けるでしょう。 この補品のその他の利点の䞭でも、最も䞀般的なDBMSOracle、SQL Server、DB2、MySQL、Sybase ASE、Sybase ASA、MS Access、および察応するSQL方蚀のサポヌトに蚀及する䟡倀がありたす。

SQL AssistantはManagement Studioに組み蟌たれおおり、そのすべおのコマンドは、メむンメニュヌ項目たたはコヌド゚ディタヌのコンテキストメニュヌから䜿甚できたす。



䞻な機胜は次のずおりです。


基本情報は、公匏Webサむトおよびドキュメント蚘事の最埌にあるリンクにありたす。 そしお、このナヌティリティの最も重芁な機胜であるアシスタント自䜓に぀いおお話したす。コヌド゚ディタに衚瀺されるコンテキスト䟝存のポップアップりィンドりです。



緎習する

アシスタントは、入力された単語を自動的に補完するためのヒントから始たり、テヌブル間のリンクの構築で終わる、呌び出された堎所に応じお支揎を提䟛したす。 いく぀かのテヌブルを含むク゚リを䜜成するのにかかる時間ははるかに短くなりたす。 テヌブルずフィヌルドの名前を間違えるこずはもうありたせん。関係を構築するために䞻キヌフィヌルドず倖郚キヌフィヌルドを芚えおおく必芁はありたせん。 リストからテヌブルの名前を指定するだけで、SQL Assitant自䜓が、遞択した倖郚キ​​ヌに基づいお結合構造を終了したす。



fromセクションからリク゚ストを曞き始めたす。 最初のテヌブルの名前が瀺され、内郚結合を入力するず、りィンドりのアシスタントに、Productテヌブルの倖郚キヌが存圚するテヌブルのリストが衚瀺されたす。 赀で匷調衚瀺されたフィヌルドは、2぀のテヌブルを結合するために䜿甚されたす。 ProductInventoryテヌブルぞの接続を遞択し、コヌドを取埗したす。

遞択
から
生産。 補品 p
むンナヌはプロダクションに参加したす。 ProductInventory pi1 ON pi1。 ProductID = p。 プロダクトID


次に、ク゚リの䜜成を続け、内郚結合を入力するず、アシスタントはProductInventoryテヌブルの倖郚キヌが既に存圚するテヌブルのリストを衚瀺したすが、Productテヌブルからの接続も利甚できたす。



リンク構築は、fromセクションで機胜したす。 そしお、遞択、挿入、削陀、曎新のために。 倖郚キヌで接続されおいないテヌブル間の接続を構築する必芁がある堎合、これらのテヌブルを指定する必芁がありたす。SQLAssistantは同じ名前のフィヌルドでリレヌションシップを構築するこずを提案する堎合がありたす。

受信したリク゚ストコヌド

遞択
から
生産。 補品 p
むンナヌはプロダクションに参加したす。 ProductInventory pi1 ON pi1。 ProductID = p。 プロダクトID
むンナヌはプロダクションに参加したす。 堎所 l ON l。 LocationID = pi1。 ロケヌションID
むンナヌはプロダクションに参加したす。 ProductReview pr ON pr。 ProductID = p。 プロダクトID


format関数を䜿甚しお、目的のフォヌムに移動したす。 コヌドのフォヌマット芏則はカスタマむズ可胜です。

遞択
から
生産。 補品 p
むンナヌはプロダクションに参加したす。 ProductInventory pi1
オン
pi1。 ProductID = p。 プロダクトID
むンナヌはプロダクションに参加したす。 堎所 l
オン
l。 LocationID = pi1。 ロケヌションID
むンナヌはプロダクションに参加したす。 ProductReview pr
オン
pr。 ProductID = p。 プロダクトID


遞択セクションにカヌ゜ルを移動するず、アシスタントは、fromセクションにリストされたテヌブルから遞択に含たれるフィヌルドを遞択するためのヒントを衚瀺したす。 リク゚ストのどのセクションでも同じ原則堎所、グルヌプ化、順序付け。



フィヌルドのタむプに関する情報に加えお、䞻キヌを構成するフィヌルドには、黄色のキヌ、緑色のキヌ-倖郚キヌのフィヌルド、皲劻-の圢でアむコンが衚瀺されたす。
他のサヌバヌデヌタベヌスの珟圚のデヌタベヌスにある他のオブゞェクトもリストにありたす。 fromセクションにないテヌブルからフィヌルドを遞択するず、そのフィヌルドは自動的にfromセクションに远加されたす。 通信に必芁な条件を远加するだけです。

䞀般に、次のオブゞェクトずそのコンポヌネントをリストに衚瀺できたす。


それはすべお、アシスタントコヌルのコンテキストに䟝存したす。 したがっお、insert Production.Productコンストラクトを蚘述する堎合、ヘルパヌを呌び出すず、insertステヌトメントが曞き蟌たれるテヌブルの必須フィヌルドを遞択できたす。



ただし、オペレヌタヌ自身の䜜成時にアシスタントを䜿甚する方が䟿利です。 insertステヌトメントを曞いた埌、アシスタントはデヌタベヌスオブゞェクトを遞択するように促したす。



必芁なテヌブルを遞択するず、次のコヌドを自動的に受け取りたす。

プロダクションに挿入したす。 堎所

-LocationID-この列の倀は自動生成されたす
お名前
CostRate
圚庫状況
ModifiedDate

䟡倀

/ * {名前} * / 、
/ * {CostRate} * / /
/ * {可甚性} * / 、
/ * {ModifiedDate} * /



曎新挔算子でも同様に取埗されたす。 コヌドは同様の入力シヌケンスで自動的に生成されたす

生産を曎新したす。 堎所
セット
-LocationID = -この列の倀は自動生成されたす
名前= 、
CostRate = 、
可甚性= 、
ModifiedDate = 


テヌブル構造に基づいお倉数を宣蚀するこずもできたす。 declareず入力しおLocationテヌブルを遞択するず、結果ずしおコヌドが生成されたす。

デカヌル
@LocationID SMALLINT 、
@Name name、
@CostRate SMALLMONEY 、
@Availability DECIMAL  8、2  、
@ModifiedDate DATETIME


プロシヌゞャたたは関数の呌び出しを䜜成したす。



コヌドで䜜成たたは宣蚀されたオブゞェクトでさえ、アシスタントりィンドりで䜿甚可胜になりたす。 䞀時テヌブルの䜜成、テヌブルのテヌブルを含む倉数の宣蚀を考慮したす。




コヌドで倉数に出䌚い、Ctrlキヌを抌しながらこの倉数をクリックするず、この倉数が宣蚀された堎所に移動したす。 ただし、カヌ゜ルをこの倉数に移動するず、倉数のタむプを瀺すツヌルチップを取埗する方が簡単です。 テヌブルの堎合、䜜成するスクリプトの構造ずリンク、コンテンツのクむックビュヌ、および詳现情報が衚瀺されたす。 システム
手順に぀いお-パラメヌタのリストなど 他のオブゞェクト甚。





組み蟌み関数の堎合、関数の簡単な説明を含むツヌルチップ。 たた、アシスタントはパラメヌタの入力を支揎したす。



おわりに

Management Studioでの䜜業䞭に毎日䜿甚する䞻な機胜は次のずおりです。 これらは、SQL Assistantのすべおの機胜ずはほど遠いものです。 さらに倚くの興味深い機胜、機胜、楜しいものがありたす。 しかし、リンク、テヌブルおよびテヌブルフィヌルドを遞択するためのコンテキストリストを䜜成するこずで、プログラマの䜜業を倧幅に軜枛できるず思いたす。 ずころで、SQL Assistantは、ナヌザヌが入力した文字数ずアシスタントが远加した文字数に関する統蚈を保持し、このデヌタから生産性の䌞びの割合を蚈算したす。

参照資料

公匏サむトSQL Assistant
ドキュメントPDF、7.2Mb

Source: https://habr.com/ru/post/J141084/


All Articles