Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Batasan unik SQL di beberapa tabel

Tambahkan tabel ke-4 khusus untuk nilai yang ingin Anda unikkan, lalu tautkan kunci ini dari tabel ini ke tabel lain menggunakan hubungan satu ke banyak. Misalnya, Anda akan memiliki tabel unik dengan ID, AppName, dan ItemName untuk membentuk 3 tabel tersebut. kolom. Kemudian buat tautan tabel ini ke tabel lainnya.

Untuk cara melakukannya di sini adalah contoh yang baikBuat hubungan satu ke banyak menggunakan SQL Server

EDIT: Inilah yang akan saya lakukan tetapi dengan mempertimbangkan kebutuhan server Anda, Anda dapat mengubah apa yang diperlukan:

CREATE TABLE AllItems(
    [id] [int] IDENTITY(1,1) NOT NULL,
    [itemType] [int] NOT NULL,
    [AppName] [nvarchar](20) NOT NULL,
    [ItemName] [nvarchar](32) NOT NULL,
    CONSTRAINT [pk_AllItems] PRIMARY KEY CLUSTERED ( [id] ASC )
) ON [PRIMARY]

CREATE TABLE Analog(
    [itemId] [int] NOT NULL,
    [Value] [float] NOT NULL
)

CREATE TABLE Discrete(
    [itemId] [int] NOT NULL,
    [Value] [bit] NOT NULL
)

CREATE TABLE Message(
    [itemId] [bigint] NOT NULL,
    [Value] [nvarchar](256) NOT NULL
)

ALTER TABLE [Analog] WITH CHECK 
    ADD CONSTRAINT [FK_Analog_AllItems] FOREIGN KEY([itemId])
REFERENCES [AllItems] ([id])
GO
ALTER TABLE [Analog] CHECK CONSTRAINT [FK_Analog_AllItems]
GO

ALTER TABLE [Discrete] WITH CHECK 
    ADD CONSTRAINT [FK_Discrete_AllItems] FOREIGN KEY([itemId])
REFERENCES [AllItems] ([id])
GO
ALTER TABLE [Discrete] CHECK CONSTRAINT [FK_Discrete_AllItems]
GO

ALTER TABLE [Message] WITH CHECK 
    ADD CONSTRAINT [FK_Message_AllItems] FOREIGN KEY([itemId])
REFERENCES [AllItems] ([id])
GO
ALTER TABLE [Message] CHECK CONSTRAINT [FK_Message_AllItems]
GO

Dari apa yang saya tahu sintaks Anda baik-baik saja, saya hanya mengubahnya dengan cara ini hanya karena saya lebih akrab dengannya tetapi juga harus berfungsi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Fungsi Bernilai Tabel di SQL Server

  2. Statistik Objek Database SQL Server

  3. Cara mendapatkan jumlah kumulatif

  4. Cara Menginstal SQL Server di Red Hat 8

  5. Menghubungkan SQL Server ke Database Java