ฉันจะสร้างตาราง SQL ภายใต้สคีมาอื่นได้อย่างไร


139

นี่มาจาก SQL Server 2008, ssms

เมื่อฉันสร้างตารางมันจะสร้างภายใต้ dbo

ฉันต้องการสร้างภายใต้สคีมาอื่น แต่เมื่อฉันใช้กล่องโต้ตอบ "ตารางใหม่" ฉันไม่พบช่องที่จะระบุสิ่งนี้

คำตอบ:


247
  1. คลิกขวาที่โหนดตารางและเลือก New Table...
  2. เมื่อเปิดตัวออกแบบตารางให้เปิดหน้าต่างคุณสมบัติ (มุมมอง -> หน้าต่างคุณสมบัติ)
  3. คุณสามารถเปลี่ยนสคีมาที่จะสร้างตารางได้โดยเลือกสคีมาในหน้าต่างคุณสมบัติ

คุณจะทำอย่างไรโดยใช้โปรแกรม เช่นสร้างตาราง SUSER_SNAME () [MyTableName] แต่ใช้งานได้จริง นอกจากนี้เป็นวิธีที่ยุติธรรมในการจัดเก็บตัวแปรส่วนกลางชั่วคราวเพื่อให้แอปพลิเคชันต่างๆพูดคุยกัน
Adamantish

โอเคขอบคุณ แต่ฉันหมายถึงการมีชื่อสคีมาเป็นตัวแปรตามที่ผู้ใช้เรียกใช้ ทำด้วย SQL แบบไดนามิกเล็กน้อย แต่แล้วก็พบวิธีที่ดีกว่าในการวาง vars เหล่านี้ในตารางบนเครื่องของผู้ใช้
Adamantish

1
@adrianbanks ใจดีมากที่จะชี้ให้พวกเขาไปในทิศทางที่ถูกต้องครับ!
Shaun F

ขอบคุณ @adrianbanks ไม่ได้ทำมาระยะหนึ่งแล้วและกำลังจะเขียนสคริปต์สร้าง!
Karl Gjertsen

50

ลองวิ่ง CREATE TABLE [schemaname].[tableName]; GO;

สิ่งนี้ถือว่าชื่อสคีมานมีอยู่ในฐานข้อมูลของคุณ โปรดใช้CREATE SCHEMA [schemaname]หากคุณต้องการสร้างสคีมาด้วย

แก้ไข: อัปเดตเป็นหมายเหตุ SQL Server 11.03 ต้องการให้เป็นคำสั่งเดียวในชุดงาน


1
ใช่ฉันรู้ว่าฉันทำได้ฉันแค่สงสัยว่าเวอร์ชันไดอะล็อกมีตัวเลือกให้ทำสิ่งนี้ได้หรือไม่
แมต

ฉันลองเหมือนเดิมแล้วมันไม่ได้ผลฉันทำอะไรผิดหรือเปล่า? หรือใช้งานได้ใน MSSQL 2012?
Pankaj Parkar

7
@PankajParkar: สิ่งนี้จะไม่ทำงานหากไม่มีสคีมา สร้างสคีมาก่อนโดยใช้create schema [schema_Name]ตามด้วยข้อความค้นหาด้านบน
Sangram Nandkhile

14

                           สร้างสคีมาฐานข้อมูลใน SQL Server 2008
1. ไปที่ Security> Schemas
2. คลิกขวาที่ Schemas แล้วเลือก New Schema
3. กรอกรายละเอียดในแท็บ General สำหรับ schema ใหม่ เช่นเดียวกับชื่อสคีมาคือ "MySchema" และเจ้าของสคีมาคือ "ผู้ดูแลระบบ"
4. เพิ่มผู้ใช้ในสคีมาตามต้องการและตั้งค่าสิทธิ์:
5. เพิ่มคุณสมบัติเพิ่มเติม (ผ่านแท็บคุณสมบัติเพิ่มเติม)
6. คลิกตกลง
                          เพิ่มตารางไปยังสคีมาใหม่ "MySchema"
1. ใน Object Explorer คลิกขวาที่ชื่อตารางแล้วเลือก "ออกแบบ":
2. การเปลี่ยนสคีมาฐานข้อมูลสำหรับตารางใน SQL Server Management Studio
3. จากมุมมองออกแบบกด F4 เพื่อ แสดงหน้าต่างคุณสมบัติ
4. จากหน้าต่างคุณสมบัติ สคีมาสคีมาที่ต้องการ:
5. ปิด Design View โดยคลิกขวาที่แท็บและเลือก "Close":
6. Closing Design View
7. คลิก "OK" เมื่อได้รับแจ้งให้บันทึก
8. ตารางของคุณถูกโอนไปยังสคีมา "MySchema" แล้ว

รีเฟรชมุมมอง Object Browser เพื่อยืนยันการเปลี่ยนแปลง
เสร็จสิ้น


มีประโยชน์มากในกระบวนการสร้าง DB Schema ก่อนหน้านี้ ขอบคุณ.
mggSoft


5

คำตอบของ Shaun F จะไม่ทำงานหากไม่มี Schema อยู่ในฐานข้อมูล หากใครกำลังมองหาวิธีสร้างสคีมาให้รันสคริปต์ต่อไปนี้เพื่อสร้างสคีมา

create schema [schema_name]
CREATE TABLE [schema_name].[table_name](
 ...
) ON [PRIMARY]

ในขณะที่เพิ่มตารางใหม่ไปที่โหมดออกแบบตารางแล้วกดF4เพื่อเปิดหน้าต่างคุณสมบัติและเลือกสคีมาจากเมนูแบบเลื่อนลง dboเริ่มต้นคือ

คุณยังสามารถเปลี่ยนสคีมาของตารางปัจจุบันโดยใช้หน้าต่างคุณสมบัติ

อ้างถึง:

ป้อนคำอธิบายภาพที่นี่


ใน SQL Server 11.0.3+ สิ่งนี้จะทำให้เกิดข้อผิดพลาด CREATE SCHEMA ต้องเป็นการดำเนินการเดียวในชุดงาน CREATE SCHEMA setup; GO
hajikelist

3

เมื่อฉันสร้างตารางโดยใช้ SSMS 2008 ฉันเห็นบานหน้าต่าง 3 บาน:

  • ตัวออกแบบคอลัมน์
  • คุณสมบัติของคอลัมน์
  • คุณสมบัติของตาราง

ในบานหน้าต่างคุณสมบัติของตารางมีฟิลด์: Schemaซึ่งช่วยให้คุณสามารถเลือกสคีมา

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