Bagaimana cara menjalankan hanya pernyataan kursor saya di SQL Server Management Studio?


97

Sebagai Toad lama untuk pengguna Oracle, saya sudah terbiasa menekan Ctrl + Enter dan hanya pernyataan di bawah kursor yang dieksekusi.

Di SQL Server Management Studio, menekan F5 menjalankan seluruh skrip. Untuk menjalankan pernyataan saat ini saja, saya harus menyorot pernyataan yang saya inginkan secara manual, lalu menekan F5.

Itu sangat mengganggu saya. Adakah yang tahu tentang alat dengan pintasan keyboard untuk menjalankan hanya pernyataan saat ini di SQL Server? Saya akan mengganti alat hanya untuk fitur yang satu ini.

Catatan: Anehnya, bahkan Toad gratis untuk SQL Server tidak mengizinkan Anda menjalankan hanya pernyataan di bawah kursor.


2
Catatan pada catatan Anda: Dalam TOAD, tombol F9 menjalankan grup pernyataan saat ini. Grup dipisahkan dengan menggunakan kata kunci "go" (juga dijawab dengan "ercan").
crokusek

F9 hanya menjalankan pernyataan saat ini di versi TOAD (v6.6 ++) yang lebih baru. Pernyataan secara opsional dipisahkan dengan titik koma. 95% tepercaya untuk dapat mengetahui di mana pernyataan itu berakhir bahkan ketika tidak ada titik koma.
crokusek

1
Sepuluh tahun kemudian ini masih menjadi masalah. Baru saja datang dari SQL Developer dan saya terkejut saya harus benar-benar membuat solusi yang membosankan untuk ini bahkan sekarang. Ada solusi terbaru mungkin?
MattSom

1
@Tokopedia
JosephStyons

Jawaban:


37

Anda dapat memeriksa add-in ini untuk SSMS 2012. Tempatkan kursor di dalam pernyataan yang ingin Anda jalankan dan tekan CTRL+ SHIFT+E

Pelaksana SSMS - https://github.com/devvcat/ssms-executor/releases

Pembaruan:
Proyek dipindahkan ke github dan addin ditulis ulang untuk mendukung SSMS 2014, SSMS 2016. (Sebelumnya, proyek tinggal di codeplex, di SSMS Executor - http://ssmsexecutor.codeplex.com/ .)


2
Ini bekerja sangat baik untuk saya di SSMS2012, tetapi sekarang saya menjalankan SSMS2014 dan saya sangat merindukannya! Adakah yang tahu tentang solusi SSMS2014?
sampal

3
Hai samp Saya mengerjakan ulang alat untuk SSMS2014. Akan memberi tahu Anda jika sudah siap.
Stanislav Stoyanov

1
@ st.stoqnov - Saya ingin menggunakan addin ini tetapi kami menjalankan SSMS 2013. Kapan Anda berencana untuk mendukung versi ini? Terima kasih
namford

1
Halo @namford, proyek dipindahkan ke github dan addin ditulis ulang untuk mendukung SSMS 2014/2016.
Stanislav Stoyanov

1
@StanislavStoyanov Harap edit pertanyaannya untuk menyebutkan bahwa Anda adalah penulis proyek yang Anda rekomendasikan.
jpaugh

35

Gunakan Ctrl+ KUuntuk memilih garis. Kemudian gunakan F5untuk menjalankannya.

Meskipun hanya berfungsi untuk pemilihan baris tunggal, tetap saja saya merasa cukup berguna.

Semoga membantu !!


2
Hei itu berguna, untuk satu baris. Terima kasih
JosephStyons

Atau itu dan CTRL E
Hugh Seagraves

CTRL-E mengeksekusi seluruh skrip dalam file di SSMS 18.5
Alexander

21

Oke, jadi yang saya dapatkan dari semua jawaban ini adalah "Tidak, itu tidak mungkin."

Edit:

Berikut adalah bagaimana saya bisa melakukan ini:

1 - Unduh Pengembang SQL

2 - Unduh driver jTDS

3 - Ikuti petunjuk ini untuk menambahkan driver itu ke SQL Developer

4 - Hubungkan ke SQL Server menggunakan SQL Developer (keren!)

5 - Jalankan dan hidup itu baik


3
Saya tidak yakin bagaimana ini bisa dianggap jawabannya karena ini semua didasarkan pada alat Oracle. Pertanyaan itu terkait dengan SSMS
Jacques

2
DBeaver juga mengizinkan query ini antara; ; eksekusi. Dan itu jauh lebih kuat daripada SQL Developer
Dima Fomin

@Jacques Eksekusi satu baris adalah fitur tunggal yang dimiliki Oracle dengan benar, dan Microsoft tidak. Segala sesuatu tentang SQL Developer adalah sub-par, tetapi tidak terintegrasi dengan server MS SQL.
jpaugh

@Jacques karena ini tidak mudah untuk membuatnya bekerja di SSMS, saya senang ada jawaban ini dan bagi saya yang ini sepertinya yang terbaik (biasanya pertanyaan saya bukan satu baris, saya tidak lebih suka menulis pertanyaan kompleks di satu baris hanya untuk membuat CTRL + KU berfungsi ...)
Betlista

Anda benar-benar dapat menggunakan Pengembang SQL untuk menjalankan Kueri MSSQL-Server. Saya tidak berpikir itu ide yang baik, betapapun malu Anda, Microsoft, untuk pengalaman pengguna yang buruk.
Gerfried

9

Seseorang menyarankan fitur ini di Devart dbForge SQL Complete (addon untuk Management Studio), dan itu masih dalam tahap pengembangan. Mari berharap ini selesai dan tidak ditinggalkan di tengah-tengah pengembangan.


2
Saya baru saja menginstal versi gratis untuk Sqlserver14 (?) Dan tampaknya berfungsi. [Halaman Devart] ( devart.com/dbforge/sql/sqlcomplete/editions.html )
LosManos

Saya menggunakannya sampai sekarang .... sekarang muncul setiap kali saya meluncurkan studio visual.
PAS

6

Catatan: Anehnya, bahkan Toad gratis untuk SQL Server tidak mengizinkan Anda menjalankan hanya pernyataan di bawah kursor.

Sangat menjengkelkan bahwa TOAD tidak memegang apa yang dijanjikannya:

Dari bantuan TOAD: [F9 untuk mengeksekusi] sebagian dari sebuah pernyataan, yang dapat berisi satu atau lebih pernyataan. Anda dapat memilih bagian pernyataan dengan menempatkan kursor di dalam atau di sebelah pernyataan, atau dengan memilih pernyataan. Catatan: Toad menganggap "berdekatan" semua pernyataan (termasuk komentar) yang dipisahkan dari kursor atau satu sama lain dengan kurang dari dua baris kosong. Jika kesalahan terjadi selama eksekusi pernyataan, pesan kesalahan ditampilkan, memungkinkan Anda untuk mengabaikan kesalahan dan melanjutkan atau membatalkan eksekusi.

Saya mencobanya jutaan kali tetapi hanya mengeksekusi seluruh skrip. Saya ingin mencarinya di grup dukungan pengguna (kodok (at) yahoogroups.com) tetapi yahoo memiliki fasilitas pencarian terbodoh yang pernah ada! Ia bahkan tidak dapat menemukan kata kunci "kodok" dalam grup surat kodok, DOH!

Saya pikir TOAD adalah alat kueri terbaik yang pernah ada, tetapi kurangnya fitur ini benar-benar mengganggu saya juga.

UPDATE: SOLUSI DITEMUKAN! Saya menanyakan masalah ini di grup surat kodok dan mendapatkan jawabannya. Tidak seperti Oracle, Anda harus memisahkan pernyataan di SQL Server dengan kata kunci GO setelah setiap pernyataan. Hanya jika Anda melakukannya, tombol F9 berfungsi seperti yang diharapkan, menjalankan pernyataan saat ini.


6

Jawaban di atas membantu saya untuk membuat jalan pintas ke Execute current Statement tanpa memilih query

1 - Klik Alat > Opsi > Lingkungan > Keyboard

2 - Untuk Tampilkan perintah yang berisi, setel ke SqlComplete10.Common_ExecuteCurrentStatement

3 - Untuk Gunakan pintasan baru di, setel ke Editor Kueri SQL

4 - Untuk Tekan tombol pintasan (tombol pintasan yang diinginkan), lakukan kombinasi Ctrl-Enter.

5 - Klik Tetapkan . Klik OK.


Ini melakukan trik, tetapi saya harus menghapus pintasan dari perintah lain terlebih dahulu, kalau tidak itu tidak akan berhasil.
Januari

Bagaimana Anda melakukannya? Ketika saya mengikuti instruksi di atas ctl-enter hanya menyoroti baris (perhatikan pertanyaan saya ada di beberapa baris).
pengguna441521

Sepertinya sudah ketinggalan zaman.
Ali Karaca

@Matt Saya menemukan sesuatu ketika saya mencari "Execute", yaitu Tools.ExecuteStatement, yang hanya berfungsi ketika saya mengubah pintasannya ke Global.
jpaugh

@Matt Tidak! Ternyata, itu ditambahkan oleh plugin ini , yang akhirnya mulai berfungsi.
jpaugh

5

Saya menggunakan pekerjaan ini di sekitar; ketika kode tidak dikomentari

Ctrl + K + U

(perintah ini menyorot baris kueri saat ini) dan kemudian

Ctrl + E

(ini menjalankan kueri yang disorot).

Ini berguna ketika Anda ingin menjalankan kueri satu baris di antara beberapa baris lain seperti:

  Select top 100 * from [dbo].[Order]

  Select top 100 * from [dbo].[OrderItem]

  Select top 100 * from [dbo].[OrderStatus]

4

Saya menggunakan solusi: Saya mengomentari kueri yang tidak saya gunakan. Anda dapat menggunakan CTRL-K, CTRL-C untuk mengomentari SQL yang telah Anda sorot. Gunakan CTRL-K, CTRL-U untuk menghapus komentar. Dengan begitu, Anda dapat mengomentari semua kueri lainnya, dan menjalankan kueri yang Anda minati dengan F5.


8
Ini benar-benar sakit di pantat. Mengapa Editor SQL membuat saya mengomentari semua yang tidak saya inginkan? Bisakah saya tidak secara positif menyatakan "jalankan satu perintah ini" tanpa memegang mouse atau menekan "Shift + Up" sebanyak 35 kali?
JosephStyons

4
Sekadar klarifikasi, terima kasih atas jawabannya; Saya menghargainya. Saya benar-benar hanya mengeluh di antarmuka SQL Server Mgmt Studio.
JosephStyons

1
Jika Anda menemukan cara yang lebih baik, pastikan untuk mempostingnya di sini :)
Andomar

3

Saya rasa ini tidak mungkin dilakukan hanya dengan menggunakan studio manajemen. TAPI Anda dapat menggunakan perangkat lunak pintasan keyboard (misalnya http://www.autohotkey.com/ ) agar urutan khusus direkam dan ditetapkan ke tombol pintas. Dalam kasus Anda, Anda membutuhkan:

<home><shift-end><F5>

Ini akan memilih baris saat ini dan menjalankannya.


8
Namun ini tidak akan memilih seluruh blok (multiline) saat ini.
Tbone

2

Di Toad untuk SQL Server, hot-key default berikut dapat digunakan untuk eksekusi:

  • F5: Jalankan semua pernyataan SQL di editor
  • F9: Jalankan pernyataan SQL pada posisi kursor saat ini
  • Shift-F9: Menjalankan semua pernyataan SQL dari kursor, termasuk arus pada posisi kursor

Namun, seperti tulis 'ercan', Anda perlu memisahkan / mengikuti setiap pernyataan dengan 'GO'.

SELECT TOP 5 * FROM accounts
GO

SELECT TOP 5 * FROM users
GO

SELECT TOP 5 * FROM contracts
GO

1

Jika Anda harus menggerakkan tangan ke bagian mouse yang mengganggu, Anda dapat menahan Ctrl sambil menekan tombol panah atas atau bawah untuk memilih garis sekaligus.


6
Maksudmu Shift, ya? Dan itu membosankan untuk pernyataan yang lebih besar. Terima kasih untuk idenya.
JosephStyons

1

Hit Ctrl- Esaat teks disorot.


9
Oke, tapi saya masih harus menyorot secara manual apa yang saya inginkan. Tujuan saya yang sebenarnya adalah dapat mengetik pernyataan dan kemudian menekan beberapa tombol yang akan mengeksekusi apa yang ada di bawah kursor.
JosephStyons

7
bagi saya, F5 lebih mudah dipukul saat teks disorot kemudian "CTRL-E".
KM.

1

Edisi SQL Complete Express memiliki bawaan ini. Tetapi Anda tidak akan mendapatkannya tanpa kecerdasan khusus.

(Saya mendapatkan ini dari posting Salamander2007)


3
Tanpa memberi tahu kami bagaimana melakukannya, ini tidak terlalu berguna
G-.

1

Jika solusi add-on pelaksana (di jawaban yang diposting teratas) tidak berfungsi dengan benar, saya membuatnya berfungsi untuk saya (SSMS v17.8.1): Add-on menambahkan perintah di bawah alat: Alat> Jalankan Pernyataan Batin .

Anda dapat menetapkan tombol pintasan keyboard khusus untuk itu dengan masuk ke Alat> Opsi> Keyboard lalu cari "eksekusi" di 'Tampilkan perintah yang berisi:' dan pilih Tools.ExecuteInnerStatement . Kemudian cukup tetapkan keystroke yang Anda inginkan di bidang 'Tekan tombol pintas:' dan tekan tombol Assign.


1

Fitur ini ada di add- in SSMSBoost untuk SSMS (Saya adalah pengembang add-in ini):

Shift-F5 akan memilih pernyataan saat ini (yang memungkinkan Anda untuk meninjau apa yang saat ini akan Anda jalankan). Kemudian Anda menekan F5 dan menjalankannya.


1

Coba tentukan makro di SSMSBoost SSMSBoost / Settings / Macros:

Pilih slot gratis untuk makro Anda di teks isian panel kanan (jika Anda mau) tambahkan 2 perintah ke urutan: SSMSBoost.SelectCurrentStatement Query. Jalankan tetapkan pintasan favorit Anda dan itu saja.


0

Anda selalu dapat menggunakan alat baris perintah sqlcmd dan osql. Saya melakukan banyak sybase semua di baris perintah unix menggunakan fungsi pembungkus yang melewati string perintah saya ke padanan (yang menurut saya isql?). Saya dulu menggunakan vi, jadi mungkin saya hanya gila saat itu ;-)


Sebenarnya itu tidak akan membantu. SQLCMD tidak akan mengirim perintah ke SQL Server sampai kumpulan selesai. (Biasanya ditunjukkan dengan GO.)
Shannon Severance

0

Cukup pilih (sorot) pernyataan tunggal yang ingin Anda jalankan dan tekan F5.


2
Dari Pertanyaan: Untuk menjalankan hanya pernyataan saat ini, saya harus menyorot pernyataan yang saya inginkan secara manual, lalu menekan F5.
Paul McCarthy

1
Agak seperti, keluar saja dari mobil Anda dan putar ban depan ke arah yang Anda inginkan dan tekan pedal gas ....
pcnate

0

Anda dapat menggabungkan dua Alat sebagai berikut: SQL Complete dari dbForce dan AuhotHotkey.

Dengan SQL Lengkap: Anda dapat mengeksekusi pernyataan saat ini di kursor, dengan menekan kombinasi Ctrl Shift E.

Alasan saya menggunakan AutoHotkey adalah untuk membuat hidup lebih mudah :-) dengan hanya menggunakan F6 untuk mengeksekusi pernyataan saat ini, dengan mengatur kode berikut dalam skrip AutoHotkey:

;SQL EXECUTE THE CURRENT STATEMENT
F6::
Send ^+E
return

Dan Anda juga dapat menjalankan pernyataan apa pun saat ini di kursor hanya dengan menekan F6

Tapi terkadang, lagi-lagi masalah besar saya adalah saya salah menekan F5, bukan F6: D


0

Ekstensi SQL Prompt Redgate untuk SSMS dapat melakukan ini.

Ini tidak gratis tetapi menurut pengalaman saya itu sangat berharga. Intellisense yang lebih baik daripada SSMS versi out of the box, pewarnaan tab, riwayat tab (sangat berharga!), Cuplikan, eksekusi pernyataan tunggal (bukan hanya satu baris), dan banyak lagi.


0

Untuk menjalankan hanya sebagian dari skrip yang lebih besar, coba ini ..

Langkah:

  1. Ciutkan pernyataan SQL yang ingin Anda jalankan dengan mengklik tanda minus di margin kiri di sebelah pernyataan. Itu hanya akan menampilkan baris pertama (dengan elipsis "..." untuk menunjukkan lebih banyak kode tidak ditampilkan) dan akhiran ";" untuk pernyataan itu.

  2. Sorot garisnya.

  3. Tekan tombol [F5].

Itu hanya akan menjalankan pernyataan yang disorot. Jika Anda ingin menjalankan lebih dari satu pernyataan sekaligus, tutup setiap pernyataan dan sorot semua yang ingin Anda jalankan, lalu klik [F5]. Ini adalah solusi, tetapi masih jauh lebih mudah daripada harus menyeret dan menyorot banyak baris kode setiap saat.


0

Cara termudah untuk melakukannya adalah penetapan CTRL+ Enterkombinasi untuk tindakan QuerySQL Server Management Studio . Jalankan dalam .

  1. Buka Tools > Options menu.
  2. Pilih Environment > Keyboard halaman di panel kiri.
  3. Temukan Query.Executetindakan dan pilih.
  4. Atur SQL Query Editordalam "Use new shortcut in:"daftar dropdown.
  5. Sekarang ketik CTRL + Enterkombinasi di press shortcut keys:kotak teks.
  6. Klik Assigntombol tersebut.
  7. Ganti Shortcut currently used by:keQuery.Execute (Ctrl+Enter (SQL Query Editor))
  8. Klik OK. Done.

Untuk mengeksekusi hanya baris saat ini adalah memilih semua baris dengan akhir baris dengan Shift + Home lalu jalankan Ctrl + Enter.
Abdullah Ilgaz

0

Gunakan Shift+ (panah bawah) untuk memilih satu baris, simpan tombol dari Ctrl+KU : D lol.

Kemudian gunakan F5 untuk menjalankannya.

Semoga membantu juga ..


-1

Berikut ini bekerja untuk saya ... Saya menggunakan SSMS 2012

1 - Klik Alat> Opsi> Keyboard Lingkungan

2 - Untuk Tampilkan perintah yang berisi , setel ke Query.Execute

3 - Untuk Gunakan pintasan baru di , setel ke Editor Kueri SQL

4 - Untuk Tekan tombol pintas , lakukan kombinasi Ctrl-Enter.

5 - Klik Tetapkan. Klik OK.


Itu semua skrip - Saya hanya ingin pernyataan di bawah kursor.
JosephStyons

Baiklah, maaf saya salah paham pertanyaannya.
BGA
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.