Pintasan / Cuplikan untuk memilih satu blok kode

8

Saya menggunakan SQL Server Management Studio 2016 di Windows 10. Saya bosan menggunakan tombol shift / ctrl + atas / bawah / kanan / kiri untuk memilih kode yang ingin saya jalankan. Saya bertanya-tanya apakah ada jalan pintas / cuplikan untuk memilih blok kode yang dipisahkan dari kode lain dengan garis kosong?

Berikut ini contoh kode:

select *
from tab1

select *
from tab2

select *
from tab3

Katakanlah, kursor saya ada di dalam blok tengah dan apa cara terbaik untuk memilih blok tengah?

Jason
sumber
1
JetBrains DataGrip (Ctrl + Enter). Murah juga. UI gelap juga.
Nelz

Jawaban:

4

Saya tidak berafiliasi dengan Red-Gate, tapi saya ingin menunjukkan bahwa jika Anda menekan Shift-F5, ketika Anda memiliki salinan SQL Prompt yang baru, maka kueri kursor Anda aktif, akan ditandai hijau, dan dieksekusi .

Ini benar-benar menyelamatkan saya banyak penekanan tombol.

Henrik Staun Poulsen
sumber
Terima kasih banyak atas jawaban Anda! Saya mencoba sql prompt dan itu luar biasa! Saya akan berpikir untuk membelinya setelah uji coba!
Jason
1
Perhatikan bahwa sebenarnya tidak memilih kode, karena Anda tidak dapat menggunakan metode ini untuk menyalin blok kode yang telah dieksekusi.
Thomas Rushton
4

Dengan menggunakan Autohotkey, saya dapat mengembangkan solusi untuk memilih blok kode dan inilah skrip yang saya miliki:

!b::

send ^f

sendraw ^\r$

send {F3}

send +{F3}

send {Esc}

send {down}

send ^{=}

return

Secara khusus, menekan Alt + B akan memanggil skrip ini, dan skrip akan memilih blok kode tempat kursor berada. Perhatikan bahwa blok kode harus dipisahkan dari blok kode lain dengan garis kosong, dan blok kode tidak boleh memiliki baris kosong di dalamnya.

Langkah-langkah kunci dari skrip about adalah

  • menggunakan ekspresi reguler "^ \ r $" untuk menemukan garis kosong di atas dan di bawah kursor

  • memindahkan kursor ke dua baris kosong ini satu per satu

  • menggunakan ctrl + = untuk memilih blok kode di antara dua baris kosong ini.

Perhatikan bahwa! / ^ / + Adalah alt / ctrl / shift secara terpisah.

Jason
sumber
Saya tidak tahu bahwa Anda bisa melakukan ini dengan Autohotkey. Jauh lebih sedikit mahal daripada SQL Prompt. Terima kasih telah memposting.
Henrik Staun Poulsen
3

Salah satu cara untuk dengan cepat memilih blok kode dalam SSMS adalah meminimalkan kode menggunakan -tombol di sebelah kata kunci terkemuka dalam pernyataan SQL (misalnya SELECT, UPDATE, DELETE, WITH, dll.) Kemudian sorot baris itu dan tekan F5untuk menjalankannya.

masukkan deskripsi gambar di sini

Bergantung pada versi SSMS Anda (versi yang lebih baru jelas lebih disukai dalam hal ini), ada juga beberapa pintasan keyboard yang dapat Anda gunakan untuk menutup / memperluas bagian. The Link pintas keyboard yang disediakan oleh menyinggung respon sebelumnya Simon Hellings' untuk hotkeys sudah menjadi set, tapi saya tidak dapat memastikan mereka benar-benar bekerja. Namun, Anda dapat mengatur beberapa tombol cepat khusus untuk melakukan ini sebagai berikut:

  1. Fungsi yang kami khawatirkan dengan mengatur tombol pintas ditemukan di Edit-> OutliningOpsi Menu: masukkan deskripsi gambar di sini

  2. Untuk mengatur tombol pintas, navigasikan ke Tools-> Options...-> Environment-> Keyboard-> Keyboard. Ketik Outlinke Tampilkan perintah yang berisi: kotak. Kemudian tetapkan kombinasi tombol cara pintas baru untuk Edit.ToggleAllOutliningdan Edit.ToggleOutliningExpansiondan tekan Assign: masukkan deskripsi gambar di sini

  3. Sekarang, periksa pintasan yang diambil setelah menekan Ok dan tombol pintas Anda akan berfungsi seperti yang diharapkan. Seperti yang Anda lihat, saya menugaskan saya untuk CTRL+ALT+Left Arrowdan CTRL+ALT+Right Arrow, tetapi Anda dapat menggunakan apa pun yang Anda inginkan: masukkan deskripsi gambar di sini

Akhirnya jika ini tidak berhasil, Anda mungkin harus beralih ke klien SQL yang berbeda. Kedengarannya seperti fungsi yang Anda inginkan mirip dengan mengeksekusi blok Oracle PL / SQL melalui CTRL + ENTERdalam Oracle SQL Developer. Anda dapat menggunakan Oracle SQL Developer untuk terhubung ke SQL Server menggunakan driver JDBC Database Pihak Ketiga ( ref ), tapi saya tidak merekomendasikannya.

John Eisbrener
sumber
Ya, ini saja alasan yang cukup untuk menginstal Toad dan menggunakan F9. Kodok memang memiliki set quirks sendiri.
crokusek
Terima kasih untuk balasan Anda! Bagaimana saya bisa melipat simpul pohon tanpa menggunakan mouse?
Jason
@Jason - Saya telah memperbarui jawaban saya dengan pintasan keyboard. Anda akan memerlukan versi SSMS yang lebih baru, karena fungsi ini tidak tersedia di semua versi seperti yang ditunjukkan oleh tautan URL yang saya berikan.
John Eisbrener
@ JohnEisbrener, terima kasih atas bantuan Anda dan saya akan memeriksanya!
Jason
@ JohnEisbrener, saya mencoba menguji pintasan keyboard baru yang Anda sarankan dan tidak ada yang berfungsi untuk saya. Saya menggunakan versi terbaru SSMS, yaitu versi 13.0.16106.4. Apakah Anda pernah mengujinya sendiri?
Jason
2

Jangan gunakan tombol up/ down/ right/ leftsama sekali untuk memilih kode Anda untuk dijalankan.

Dengan asumsi bahwa mouse komputer dapat digunakan, lakukan ini:

  1. Gunakan mouse komputer Anda untuk memindahkan kursor ke karakter pertama yang akan disertakan.
  2. Berikutnya Tahan bawah dan terus menekan dengan Ctrlkunci, kemudian gerakkan mouse untuk memasukkan karakter terakhir untuk dimasukkan.
  3. Lanjutkan menahan Ctrltombol, lalu tekan Etombol yang akan menjalankan teks yang disorot.

Jika Anda ingin menghapus kode yang baru saja dieksekusi, Anda harus Terus memegang Ctrlkunci dan kemudian tekan Deletetombol.

Saya kira mungkin saja seseorang telah membuat alat untuk melakukannya secara otomatis.

RLF
sumber
Terima kasih untuk balasan Anda! Saya tahu cara menggunakan ctrl / shift dengan mouse untuk memilih kode dan merasa itu agak lambat dibandingkan dengan shortkey / snippet. Apakah Anda mengetahui adanya shortkey / snippet yang dapat memilih kode secara otomatis?
Jason
4
@RLF, saya akan memberikan jawaban Anda dengan upvote untuk trolling yang sukses (disengaja atau tidak, tidak masalah.)
Daniel Hutmacher
1

Saya pikir ini tidak mungkin. Lihat daftar lengkap default dari pintasan kotak di sini . Anda mungkin dapat menyesuaikan sesuatu dari alat -> menu opsi

Simon Hellings
sumber
Terima kasih atas jawaban anda! Jika shortkey tidak memungkinkan, apakah Anda mengetahui ada potongan untuk ini?
Jason
Bukannya aku bisa memikirkan
Simon Hellings