Farklı bir şema altında nasıl SQL tablosu oluşturabilirim?


137

Bu SQL Server 2008, ssms'den

Bir tablo oluşturduğumda, dbo altında oluşturulur.

Farklı bir şema altında oluşturmak istiyorum, ancak 'Yeni Tablo' iletişim kutusunu kullandığımda, bunu belirtmek için alanı asla bulamıyorum.

Yanıtlar:


242
  1. Tablolar düğümüne sağ tıklayın ve New Table...
  2. Tablo tasarımcısı açıkken özellikler penceresini açın (görünüm -> Özellikler Penceresi).
  3. Özellikler penceresinde bir şema seçerek tablonun oluşturulacağı şemayı değiştirebilirsiniz.

Bunu programlı olarak nasıl yapardınız? yani Tablo SUSER_SNAME () oluşturun. [MyTableName] ama bu gerçekten işe yarıyor. Ayrıca, farklı uygulamaların birbirleriyle konuşmasına izin vermek için geçici küresel değişkenleri depolamanın adil bir yolu mu?
Adamantish

Tamam teşekkürler ama şema adı hangi kullanıcının çalıştıran göre bir değişken olarak sahip demekti. Biraz dinamik bir SQL ile yaptım ama daha sonra bu değişkenleri kullanıcının makinesindeki bir tabloya koymanın daha iyi bir yolunu buldum.
Adamantish

1
@adrianbanks onları doğru yöne yönlendirmek için çok naziksiniz efendim!
Shaun F

@Adrianbanks teşekkürler. Bunu bir süredir yapmamıştı ve bir senaryo yazmanın eşiğine gelmişti!
Karl Gjertsen

50

Koşmayı dene CREATE TABLE [schemaname].[tableName]; GO;

Bu, şema adının veritabanınızda bulunduğunu varsayar. CREATE SCHEMA [schemaname]Şema da oluşturmanız gerekiyorsa lütfen kullanın .

EDIT: SQL Server 11.03 toplu işte tek deyim olmasını gerektiren güncelleştirildi.


1
Evet, bunu yapabileceğimin farkındayım, sadece diyalog versiyonunun bunu yapmak için bir seçeneği olup olmadığını merak ediyordum.
Matt

Aynı şeyi denedim, çalışmıyor, Yanlış bir şey mi yapıyorum? Yoksa sadece MSSQL 2012 çalışır?
Pankaj Parkar

7
@PankajParkar: Şema yoksa bu işe yaramaz. İlk önce create schema [schema_Name]yukarıdaki sorguyu kullanarak şema oluşturun .
Sangram Nandkhile

14

                           SQL Server 2008'de veritabanı şeması oluşturma
1. Güvenlik> Şemalar'a gidin
2. Şemalar'a sağ tıklayın ve Yeni Şema'yı seçin
3. Yeni şema için Genel sekmesindeki ayrıntıları tamamlayın. Şema adı "MySchema" ve şema sahibi "Yönetici" gibi.
4. Şemaya kullanıcıları gerektiği gibi
ekleyin ve izinlerini ayarlayın: 5. Genişletilmiş özellikleri ekleyin (Genişletilmiş Özellikler sekmesi aracılığıyla)
6. Tamam'ı tıklatın.
                          Yeni Şema "MySchema" a Tablo Ekleme
1. Nesne Gezgini'nde tablo adına sağ tıklayın ve "Tasarım" ı seçin:
2. SQL Server Management Studio'da bir tablo için veritabanı şemasını değiştirme
3. Tasarım görünümünde, Özellikler penceresini görüntüleyin.
Özellikler penceresinden 4. istenen şemaya şemayı değiştirin:
5. Kapat Tasarım Görünümü sağ tıklayarak sekmesi tarafından ve seçme "Kapat":
6. Kapanış Tasarım Görünümü
kaydetmeniz istenir 7. "Tamam" ı
8. Sizin tablo artık "MySchema" şemasına aktarıldı.

Nesne Tarayıcısı görünümünü yenileme Değişiklikleri onaylamak için
Tamamlandı


Önceki DB Schema oluşturma işlemi çok yararlı. Teşekkürler.
mggSoft

12

F4'e basın ve aradığınızı elde edeceksiniz.


5

DB'de Şema yoksa Shaun F'nin yanıtı çalışmaz. Herkes şema oluşturmak için bir yol arıyorsa, sadece şema oluşturmak için aşağıdaki komut dosyasını çalıştırın.

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

Yeni tablo eklerken, tablo tasarımı moduna gidin ve F4Özellik Penceresini açmak için tuşuna basın ve açılır menüden şemayı seçin. Varsayılan değer dbo.

Özellik penceresini kullanarak geçerli Tablonun şemasını da değiştirebilirsiniz.

bakınız:

resim açıklamasını buraya girin


SQL Server 11.0.3 ve sonraki sürümlerinde bu bir hata verir, CREATE SCHEMA toplu işteki tek işlem olmalıdır. CREATE SCHEMA setup; GO
hajikelist

3

SSMS 2008 kullanarak bir tablo oluşturduğumda, 3 bölme görüyorum:

  • Sütun tasarımcısı
  • Sütun özellikleri
  • Tablo özellikleri

Tablo özellikleri bölmesinde, Schemaşemayı seçmenizi sağlayan bir alan vardır:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.