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.

JosephStyons
sumber
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/ .)

Stanislav Stoyanov
sumber
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 !!

debu
sumber
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

JosephStyons
sumber
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.

Salamander 2007
sumber
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.

ercan
sumber
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.

Galla Balaji
sumber
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]
nzrytmn
sumber
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.

Andomar
sumber
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.

DmitryK
sumber
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
Kåre Werner Storgaard
sumber
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.

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

Hit Ctrl- Esaat teks disorot.

Chris McCall
sumber
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)

Shorin
sumber
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.

inouttennis2314
sumber
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.

Andrei Rantsevich
sumber
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.

Gern
sumber
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 ;-)

KM.
sumber
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.

JE
sumber
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

Salib Biru
sumber
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.

Matt Laxton
sumber
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.

Tim Farrar
sumber
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.
Abdullah Ilgaz
sumber
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 ..

Brifeb
sumber
-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.

BGA
sumber
Itu semua skrip - Saya hanya ingin pernyataan di bawah kursor.
JosephStyons
Baiklah, maaf saya salah paham pertanyaannya.
BGA