SQL Server Management Studio 2012: Bagaimana cara memiliki folder di proyek SSMS?

17

Saya menggunakan SSMS 2012 untuk berbicara dengan SQL server 2012 dan server Azure SQL yang kami gunakan. Saya akui saya bukan ahli SQL jadi saya sudah menyimpan sebagian besar skrip SQL saya untuk referensi di masa mendatang. Saya dengan cepat mengalami 20 atau lebih skrip SQL dalam proyek SSMS dan mereka semua hidup di bawah folder 'Permintaan' yang sama.

Apakah ada cara saya dapat membuat "sub-folder" di proyek sehingga saya dapat mengatur skrip saya dengan benar? Bagaimana kebanyakan orang menjaga agar skrip mereka teratur? Saya cukup yakin jika ini bug pemula seperti saya, itu harus menjadi masalah nyata untuk admin nyata (dengan ratusan skrip potensial?)

DeepSpace101
sumber
2
Saya punya teman yang menyimpan semua skripnya dalam satu .sqlfile raksasa . Dengan begitu Anda hanya perlu melacak satu file.
Max Vernon
Saya tahu orang-orang yang hanya menyimpannya di folder yang disinkronkan ke akun DropBox mereka. Lalu yang menyimpannya di SkyDrive mereka juga. Saya bukan orang yang benar-benar menggunakan proyek dalam SSMS.
Shawn Melton
Di sinilah Script Manager bisa berguna, jika Anda terbiasa. Meskipun saya menyukainya, bagi saya itu tidak klik. Saya hanya lebih suka menyimpan skrip saya secara lokal, di beberapa folder yang saya cadangkan di DropBox. Tidak pernah menyukai proyek SSMS juga.
Marian
Anda dapat menggunakan SQLTreeo, ini alatnya: sqltreeo.com

Jawaban:

7

Akhirnya, subfolder dimungkinkan dalam SSMS 2016.

Pengguna yang berhati-hati: Anda dapat menginstal SSMS 2016 dan tetap menggunakan yang lama. Lihat Catatan[1] bawah.

Sesampai di sana, mulai menggunakan solusi, bukan proyek .


Subfolder bekerja seperti ini:

Menambahkan subfolder solusi:

  1. Klik kanan item solusi (root pohon) dan dari menu pilih Tambah > Folder Solusi Baru .
  2. Langkah 1 sekarang berfungsi juga pada folder apa pun yang Anda tambahkan.

Menambahkan skrip SQL:

  • Klik kanan folder apapun dan dari yang Tambah menu, baik menambahkan file SQL yang ada atau SQL file baru (dalam daftar, menemukan jenis item yang memiliki ekstensi SQL).

Proyek lama Anda yang baik (Proyek lama yang buruk)

  • Anda masih dapat meng-host proyek dalam solusi Anda jika Anda melihatnya menguntungkan karena beberapa alasan warisan, untuk koneksi hosting, dll. Cukup tambahkan baru atau impor proyek yang ada ke dalam solusi.

[1] Mengenai peningkatan:

  1. SQL Server 2008 - 2016 secara resmi didukung oleh SSMS 2016. Lihat informasi lebih lanjut di halaman unduhan. Untuk versi yang lebih lama, Anda dapat menyimpan SSMS lama favorit Anda, lihat poin 2 di bawah ini.

    • satu-satunya pengaturan yang mungkin memerlukan perhatian Anda adalah Pilihan > SQL Server Object Explorer > Script untuk versi server > (atur versi server Anda)
  2. Versi SSMS yang berbeda hidup dengan baik bersama-sama , yaitu Anda dapat menginstal SSMS 2008 dan SSMS 2016 bersama tanpa masalah - diuji.

miroxlav
sumber
Ini berguna. Perlu dicatat bahwa di bawah kap SSMS menyimpan semua file ini dalam struktur file datar dalam satu direktori, sehingga Anda tidak dapat memiliki file dengan nama yang sama di dua folder berbeda.
Jon
@ Jon - Ini tidak sepenuhnya benar. Ini mungkin terlihat membingungkan pada pandangan pertama, tetapi struktur file dan folder yang diperlihatkan dalam pohon proyek tidak tergantung dari longgarnya file pada disk. Pada disk, tidak perlu rata (coba saja simpan file baru di tempat lain ...), Anda dapat membuatnya didistribusikan di direktori sesuai keinginan. Dengan kata lain: simpan file di direktori mana saja di sistem file dan kemudian Anda bisa menambahkannya ke folder virtual di pohon proyek SSMS. (Jika saya ingat dengan benar, bahkan duplikasi referensi dimungkinkan.) Kelemahan: Anda perlu mengatur file dua kali dalam direktori dan dalam folder proyek.
miroxlav
6

Di SSMS, jika Anda belum menampilkan snap-in Browser Template, pergi ke Menu, View, Template Explorer (hot key Ctrl- Alt- T).

Template dimuat dari mesin lokal Anda, dari folder ini

C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql

Anda dapat menambahkan subfolder sesuka Anda dan bahkan membuatnya bersarang (melalui Windows Explorer atau SSMS). Jika saya tidak salah folder hanya dimuat sekali per startup SSMS, jadi Anda mungkin harus me-restart SSMS untuk mengambil perubahan folder dari sistem file.

p / s - Metode ini mengarahkan kembali browser template untuk tujuan mengatur skrip proyek!

孔夫子
sumber
Jauh dari jawaban, tetapi ini adalah retas paling kotor yang disarankan sejauh ini! Terima kasih telah berbagi, saya akan membiarkan ini terbuka selama beberapa hari lagi ...
DeepSpace101
4

Sayangnya proyek SSMS tidak mendukung subfolder. Jika Anda berbicara tentang folder default tempat SQL menyimpannya, ya Anda dapat membuat subfolder di sana. Itu hanya folder di hard drive Anda. Folder itu terletak di "C: \ Users {username} \ Documents \ SQL Server Management Studio \ Projects" secara default.

mrdenny
sumber
2

Kurangnya subfolder tentu membuat frustrasi. Saya akan mencoba mengatur barang-barang saya ke dalam proyek-proyek terpisah dalam solusi yang sama. Masing-masing memiliki folder Permintaan ... Saya akan memberi nama proyek seperti saya akan memberi nama subfolder (jika saya bisa membuatnya!).

Aron
sumber
1

Menambahkan ke Jawaban 3, di atas, mengatasi situasi dengan mengarahkan kembali template di C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql.

Anda harus menambahkan izin ke akun pengguna mesin untuk Kontrol Penuh. (Klik kanan folder tujuan, Properti, pilih pengguna mesin, Edit, dll.)

Bahkan saat itu rasanya Steve Balmer memimpin solusi ini. Anda dapat menyimpan file di sana tetapi ketika dibuka di SSMS, itu tidak dibuka di bawah nama file .sql, itu adalah nama generik. Jadi ada semua omong kosong ini hanya untuk menjaga kueri, fungsi, skrip tabel, sprocs, dll. Semuanya terorganisir.

Jawaban yang bagus tetapi pada Windows 8.1, itu bisa dicegah.

Jawaban terbaik yang saya miliki adalah menyimpan melalui SSMS ke sistem file yang saya pikir akan menghormati bersarangnya file .sql. Saya harus membuat Proyek Database di Visual Studio 2013, di mana saya bisa mengatur folder karena masuk akal untuk aliran produk saya.

Tapi saya tidak bisa membuka kueri ini melalui Server Explorer di Visual Studio ... namun kemudian dimungkinkan untuk mengatur kueri di satu tempat jika sedang Dalam Pekerjaan, Skrip SPROC, Skrip UDF, dll.

Tidak ada IDE untuk melakukan pekerjaan proyek semacam ini dan ya, dalam kata-kata responden lain di sini, itu menyedihkan.

Berkeliaran dan mengoceh sedikit di sini ... dengan kata lain saya bisa mendapatkan struktur folder yang saya inginkan dengan Proyek DB di VS 2013 tetapi jika saya ingin masuk ke server jauh untuk mengujinya, saya harus mengaksesnya file demi file dari SSMS. Rasa sakit di sisi belakang ... Saya ingin IDE yang melakukan ini.

pengguna1585204
sumber
0

Saya membuat kemajuan dengan mengedit secara manual file proyek SSMS untuk menambahkan folder di bawah solusinya. Buka file .ssmssqlproj di editor teks. Cari node yang disebut LogicalFolder. Simpul Miscellaneous adalah model yang baik untuk apa yang perlu Anda lakukan.

Cukup salin baris ini dan ubah nama ke folder yang ingin Anda lihat. Juga ubah nilai Tipe menjadi sesuatu yang unik. Inilah yang saya lakukan.

<LogicalFolder Name="Tables" Type="4" Sorted="true">
  <Items />
</LogicalFolder>
<LogicalFolder Name="Functions" Type="6" Sorted="true">
  <Items />
</LogicalFolder>
<LogicalFolder Name="User-defined Table Types" Type="7" Sorted="true">
  <Items />
</LogicalFolder>

PASTIKAN UNTUK MENJAGA SALINAN FILE PROYEK (.ssmssqlproj). Jika Anda mengacaukan pengeditan, seperti yang saya lakukan beberapa kali, proyek tidak akan terbuka. Ini tidak akan terlalu buruk jika Anda telah menginstal add-in TFS dan memeriksa file proyek Anda - Anda bisa membuang perubahannya. Tetapi jika tidak, pastikan Anda membuat salinan.

Lalu saya membuat folder di bawah solusi agar sesuai dengan nama folder logis. Setelah itu saya membuat skrip definisi tabel dan skrip definisi tipe tabel yang ditentukan pengguna, dan menyimpannya di folder masing-masing. Mereka muncul di bawah folder "Lain-lain" di penjelajah solusi, jadi saya menyeretnya ke folder yang sesuai.

Di sinilah segalanya rusak. Karena, saya pikir, semua prosedur, fungsi, tabel, dan tipe yang tersimpan ada di file yang memiliki ekstensi .sql. Karena file .sql, mereka ditempatkan di bawah folder Queries di solution explorer. Namun, mereka masih secara fisik berada di folder yang benar pada disk. Jadi itu adalah langkah ke arah yang benar.

Saya ingin melihat apakah atribut "Type" dalam file proyek sesuai dengan ekstensi file tertentu, dan jika saya bisa mengetahui apa itu. Jika saya bisa mendapatkan ekstensi yang tepat maka SSMS akan menempatkan file di folder proyek yang tepat.

Saya dapat melihat Visual Studio untuk melihat cara kerjanya, karena SSMS didasarkan pada Visual Studio, sesuai dengan splash screen mereka.

Namun, saya setengah jalan di sana, jadi mungkin salah satu dari Anda dapat mengetahui sisanya!

RonSanderson
sumber
Ini tidak berhasil untuk saya. Gagal membuka.
Soham Dasgupta