SQL Server Management Studio 2012: มีโฟลเดอร์ในโครงการ SSMS อย่างไร


17

ฉันใช้ SSMS 2012 เพื่อพูดคุยกับเซิร์ฟเวอร์ SQL 2012 และเซิร์ฟเวอร์ Azure SQL ที่เราใช้ ฉันยอมรับว่าฉันไม่ใช่ผู้เชี่ยวชาญ SQL ดังนั้นฉันจึงบันทึกสคริปต์ SQL ส่วนใหญ่ไว้เพื่อใช้อ้างอิงในอนาคต ฉันพบสคริปต์สคริปต์ SQL อย่างน้อย 20 สคริปต์ในโครงการ SSMS และพวกเขาทั้งหมดอยู่ภายใต้โฟลเดอร์ 'แบบสอบถาม' เดียวกัน

มีวิธีที่ฉันสามารถสร้าง "โฟลเดอร์ย่อย" ในโครงการเพื่อให้ฉันสามารถจัดระเบียบสคริปต์ของฉันได้อย่างถูกต้องหรือไม่ คนอื่น ๆ ส่วนใหญ่เก็บสคริปต์ของพวกเขาได้อย่างไร ฉันค่อนข้างแน่ใจว่าข้อบกพร่องนี้เป็นสามเณรเช่นฉันมันจะต้องเป็นปัญหาจริงสำหรับผู้ดูแลระบบจริง (อาจมีหลายร้อยสคริปต์?)


2
ฉันมีเพื่อนที่เก็บสคริปต์ทั้งหมดของเขาไว้ใน.sqlไฟล์เดียว ด้วยวิธีนี้คุณจะต้องติดตามไฟล์เดียวเท่านั้น
Max Vernon

ฉันรู้จักคนที่เก็บไว้ในโฟลเดอร์ที่ซิงค์กับบัญชี DropBox ของพวกเขา แล้วคนที่บันทึกไว้ใน SkyDrive ของพวกเขาเช่นกัน ฉันไม่ใช่คนเดียวที่จะใช้โครงการใน SSMS
Shawn Melton

ที่นี่ตัวจัดการสคริปต์อาจมีประโยชน์ถ้าคุณคุ้นเคยกับมัน แม้ว่าฉันจะชอบมัน แต่สำหรับฉันมันก็ไม่ได้คลิก ฉันต้องการบันทึกสคริปต์ไว้ในเครื่องในบางโฟลเดอร์ที่ฉันสำรองข้อมูลใน DropBox ไม่เคยชอบโครงการ SSMS เช่นกัน
แมเรียน

คุณสามารถใช้ SQLTreeo ต่อไปนี้เป็นเครื่องมือ: sqltreeo.com

คำตอบ:


7

ในที่สุดโฟลเดอร์ย่อยนั้นถูกสร้างขึ้นให้เป็นไปได้ใน SSMS 2016

ผู้ใช้ที่มีความระมัดระวัง: คุณสามารถติดตั้ง SSMS 2016 และยังคงใช้งานได้เหมือนเดิม เห็นโน๊ต[1]ด้านล่าง

เมื่อมีการเริ่มต้นใช้แก้ปัญหาแทนการโครงการ


โฟลเดอร์ย่อยทำงานเช่นนี้:

การเพิ่มโฟลเดอร์ย่อยโซลูชัน:

  1. คลิกขวาที่รายการวิธีการแก้ปัญหา (รากต้นไม้) และจากเมนูเลือกเพิ่ม > New Folder
  2. ขั้นตอนที่1ตอนนี้ใช้ได้กับโฟลเดอร์ที่คุณเพิ่มด้วย

เพิ่มสคริปต์ SQL:

  • คลิกขวาที่โฟลเดอร์ใด ๆ และจากมันเพิ่มเมนูที่มีอยู่เพิ่มไฟล์ SQL หรือไฟล์ใหม่ SQL (ในรายการค้นหาประเภทรายการซึ่งมีนามสกุล SQL)

โครงการเก่าที่ดีของคุณ (โครงการเก่าแย่)

  • คุณยังสามารถโฮสต์โครงการในโซลูชันของคุณหากคุณเห็นว่าโครงการเหล่านั้นมีประโยชน์สำหรับเหตุผลดั้งเดิมบางประการสำหรับการโฮสต์การเชื่อมต่อ ฯลฯ เพียงเพิ่มโครงการใหม่หรือนำเข้าโครงการที่มีอยู่ลงในโซลูชัน

[1] เกี่ยวกับการอัพเกรด:

  1. SQL Server 2008 - 2016 ได้รับการสนับสนุนอย่างเป็นทางการโดย SSMS 2016 ดูข้อมูลเพิ่มเติมได้ที่หน้าดาวน์โหลด สำหรับรุ่นเก่าคุณสามารถเก็บ SSMS เก่าที่คุณชื่นชอบได้จากจุดที่ 2 ด้านล่าง

    • การตั้งค่าเดียวที่คุณอาจต้องให้ความสนใจคือตัวเลือก > SQL Server Object Explorer > สคริปต์สำหรับรุ่นเซิร์ฟเวอร์ > (ตั้งค่ารุ่นเซิร์ฟเวอร์ของคุณ)
  2. SSMS เวอร์ชั่นต่าง ๆใช้งานร่วมกันได้ดีเช่นคุณสามารถติดตั้ง SSMS 2008 และ SSMS 2016 ได้พร้อมกันโดยไม่มีปัญหา - ผ่านการทดสอบ


มันมีประโยชน์ เป็นที่น่าสังเกตว่าภายใต้ประทุน SSMS กำลังจัดเก็บไฟล์เหล่านี้ทั้งหมดในโครงสร้างไฟล์แบบราบในไดเรกทอรีเดียวดังนั้นคุณจึงไม่สามารถมีไฟล์ที่มีชื่อเดียวกันในสองโฟลเดอร์ที่แตกต่างกัน
Jon

@ จอน - นี่ไม่เป็นความจริงเลย มันอาจดูสับสนตั้งแต่แรกเห็น แต่โครงสร้างไฟล์และโฟลเดอร์ที่แสดงในแผนผังโครงการไม่ขึ้นกับไฟล์ไฟล์บนดิสก์ บนดิสก์มันไม่จำเป็นต้องแบน (แค่ลองบันทึกไฟล์ใหม่ที่อื่น ... ) คุณสามารถแจกจ่ายมันในไดเรกทอรีตามที่คุณต้องการ ในคำอื่น ๆ : เก็บไฟล์ในไดเรกทอรีใด ๆ ในระบบไฟล์และจากนั้นคุณสามารถเพิ่มลงในโฟลเดอร์เสมือนใด ๆ ในโครงสร้างโครงการ SSMS (ถ้าฉันจำได้อย่างถูกต้องแม้กระทั่งการอ้างอิงซ้ำก็เป็นไปได้) ข้อเสีย: คุณต้องจัดระเบียบไฟล์สองครั้ง - ใน dirs และในโฟลเดอร์โครงการ
miroxlav

6

ใน SSMS หากคุณยังไม่ได้แสดง Template Snap-in ของ Template ให้ไปที่เมนูมุมมอง Template Explorer (ฮอตคีย์Ctrl- Alt- T)

แม่แบบถูกโหลดจากเครื่องท้องถิ่นของคุณจากโฟลเดอร์นี้

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

คุณสามารถเพิ่มโฟลเดอร์ย่อยตามที่คุณต้องการหรือแม้แต่ซ้อน (ผ่าน Windows Explorer หรือ SSMS) หากฉันไม่เข้าใจผิดโฟลเดอร์จะถูกโหลดเพียงครั้งเดียวต่อการเริ่มต้น SSMS ดังนั้นคุณอาจต้องรีสตาร์ท SSMS เพื่อรับการเปลี่ยนแปลงโฟลเดอร์จากระบบไฟล์

p / s - วิธีนี้จะใช้เท็มเพลตเบราว์เซอร์ใหม่เพื่อจุดประสงค์ในการจัดระเบียบสคริปต์โครงการ!


ไกลจากคำตอบ แต่นี่เป็นแฮ็คที่เล็กที่สุดที่แนะนำ! ขอบคุณสำหรับการแบ่งปันฉันจะเปิดนี้อีกสองสามวัน ...
DeepSpace101

4

โครงการ SSMS ที่น่าเศร้าไม่รองรับโฟลเดอร์ย่อย หากคุณกำลังพูดถึงโฟลเดอร์เริ่มต้นที่ SQL บันทึกสิ่งต่างๆไว้คุณสามารถสร้างโฟลเดอร์ย่อยได้ นั่นเป็นเพียงโฟลเดอร์ในฮาร์ดไดรฟ์ของคุณ โฟลเดอร์นั้นจะอยู่ใน "การจัดการเซิร์ฟเวอร์ C \ \ Users \ ชื่อผู้ใช้ \ Documents \ SQL Studio \ Projects" โดยค่าเริ่มต้น


2

การขาดโฟลเดอร์ย่อยน่าผิดหวังอย่างแน่นอน ฉันจะลองจัดระเบียบข้อมูลของฉันเป็นโครงการแยกต่างหากในโซลูชันเดียวกัน แต่ละคนมีโฟลเดอร์แบบสอบถาม ... ฉันจะตั้งชื่อโครงการในแบบที่ฉันจะตั้งชื่อโฟลเดอร์ย่อย (ถ้าฉันสามารถสร้างพวกเขาได้!)


1

การเพิ่มคำตอบ 3 ข้างต้นแก้ไขสถานการณ์โดยใช้แม่แบบที่ C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql

คุณจะต้องเพิ่มการอนุญาตให้กับบัญชีผู้ใช้งานเครื่องสำหรับการควบคุมทั้งหมด (คลิกขวาที่โฟลเดอร์ปลายทางคุณสมบัติเลือกผู้ใช้เครื่องแก้ไข ฯลฯ )

ถึงอย่างนั้น Steve Balmer ก็มุ่งหน้าไปยังทางออกนี้เมื่อผ่านไป คุณสามารถบันทึกไฟล์ที่นั่น แต่เมื่อเปิดใน SSMS จะไม่เปิดภายใต้ชื่อไฟล์. sql นั้นเป็นชื่อสามัญ ดังนั้นจึงมีสิ่งที่น่าสนใจทั้งหมดนี้เพื่อรักษาแบบสอบถามฟังก์ชั่นสคริปต์ตาราง sprocs และอื่น ๆ ทั้งหมดของคุณ

คำตอบที่ยอดเยี่ยม แต่ใน Windows 8.1 มันได้รับการกีดกัน

คำตอบที่ดีที่สุดที่ฉันมีคือการบันทึกผ่าน SSMS ไปยังระบบไฟล์ซึ่งฉันคิดว่าจะเคารพการทำรังของไฟล์. sql ฉันต้องสร้างโครงการฐานข้อมูลใน Visual Studio 2013 ซึ่งฉันสามารถตั้งค่าโฟลเดอร์ตามที่เหมาะสมกับโฟลว์ผลิตภัณฑ์ของฉัน

แต่ฉันไม่สามารถเปิดแบบสอบถามเหล่านี้ผ่าน Server Explorer ใน Visual Studio ... แต่ก็เป็นไปได้ที่จะจัดระเบียบแบบสอบถามในที่เดียวหากพวกเขาอยู่ในที่ทำงานสคริปต์ SPROC สคริปต์ UDF ฯลฯ

ไม่มี IDE สำหรับการทำงานโครงการและประเภทนี้ในคำพูดของผู้ตอบคนอื่นที่นี่มันช่างน่าเศร้า

ท่องเที่ยวและพูดจาโผงผางที่นี่เล็กน้อย ... กล่าวอีกนัยหนึ่งฉันสามารถรับโครงสร้างโฟลเดอร์ที่ฉันต้องการด้วย DB Project ใน VS 2013 แต่ถ้าฉันต้องการเข้าสู่เซิร์ฟเวอร์ระยะไกลเพื่อทดสอบพวกเขาฉันต้องเข้าถึงไฟล์โดยใช้ไฟล์จาก SSMS ปวดด้านหลัง ... ฉันต้องการIDEที่ทำสิ่งนี้


0

ฉันดำเนินการไปแล้วโดยการแก้ไขไฟล์โครงการ SSMS ด้วยตนเองเพื่อเพิ่มโฟลเดอร์ภายใต้โซลูชัน เปิดไฟล์ .ssmssqlproj ในเท็กซ์เอดิเตอร์ ค้นหาโหนดชื่อ LogicalFolder โหนดเบ็ดเตล็ดเป็นแบบจำลองที่ดีสำหรับสิ่งที่คุณต้องทำ

เพียงคัดลอกบรรทัดเหล่านี้และเปลี่ยนชื่อเป็นโฟลเดอร์ที่คุณต้องการดู เปลี่ยนค่า Type เป็นสิ่งที่ไม่ซ้ำกัน นี่คือสิ่งที่ฉันทำ

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

ทำให้แน่ใจว่าได้รับสำเนาของไฟล์โครงการ (.ssmssqlproj) หากคุณทำให้การแก้ไขเป็นไปอย่างที่ฉันทำไปสองสามครั้งโครงการจะไม่เปิด สิ่งนี้จะไม่เลวร้ายหากคุณติดตั้ง TFS add-in และกำลังตรวจสอบไฟล์โครงการของคุณ - คุณสามารถยกเลิกการเปลี่ยนแปลงได้ แต่ถ้าไม่แน่ใจว่าคุณทำสำเนา

จากนั้นฉันสร้างโฟลเดอร์ภายใต้โซลูชันเพื่อจับคู่ชื่อโฟลเดอร์แบบลอจิคัล หลังจากนั้นฉันสร้างสคริปต์คำจำกัดความตารางและสคริปต์คำจำกัดความประเภทตารางที่ผู้ใช้กำหนดและบันทึกไว้ในโฟลเดอร์ที่เกี่ยวข้อง พวกเขาปรากฏตัวภายใต้โฟลเดอร์ "เบ็ดเตล็ด" ใน Explorer โซลูชันดังนั้นฉันลากพวกเขาไปยังโฟลเดอร์ที่เหมาะสม

นี่คือสิ่งที่สลายตัว เพราะฉันคิดว่าโพรซีเดอร์ฟังก์ชันตารางและชนิดที่เก็บไว้ทั้งหมดอยู่ในไฟล์ที่มีนามสกุล. sql เนื่องจากไฟล์. sql ถูกวางไว้ใต้โฟลเดอร์ Queries ในตัวสำรวจโซลูชัน อย่างไรก็ตามยังคงอยู่ในโฟลเดอร์ด้านขวาบนดิสก์ นั่นคือขั้นตอนในทิศทางที่ถูกต้อง

ฉันต้องการดูว่าแอตทริบิวต์ "ประเภท" ในไฟล์โครงการสอดคล้องกับนามสกุลไฟล์ที่เฉพาะเจาะจงหรือไม่และหากฉันสามารถทราบได้ว่าไฟล์เหล่านั้นเป็นอะไร หากฉันสามารถรับส่วนขยายที่ถูกต้องได้ SSMS จะวางไฟล์ไว้ในโฟลเดอร์โครงการที่ถูกต้อง

ฉันอาจดู Visual Studio เพื่อดูวิธีการทำงานเนื่องจาก SSMS ใช้ Visual Studio ตามหน้าจอสแปลช

อย่างไรก็ตามฉันอยู่ที่นั่นดังนั้นบางทีคุณอาจจะรู้ว่าส่วนที่เหลือ!


สิ่งนี้ไม่ได้ผลสำหรับฉัน มันไม่สามารถเปิดได้
Soham Dasgupta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.