2016-07-28 29 views
0

Wie Hinzufügen Verbund eindeutigen Schlüssel zu benutzerdefinierten Tabellentyp wie folgt hinzu:Wie Verbund eindeutigen Schlüssel zu benutzerdefinierten Tabelle Typ

CREATE TYPE [dbo].[jobdata] AS TABLE(
    [emp_num] [smallint] NULL, 
    [job_date] [date] NULL, 
    [year] [smallint] NULL, 
    [job_code] [smallint] NULL, 
    [order_year] [smallint] NULL, 
    [order_ser] [decimal](5, 0) NULL, 

) 
GO 

Ich möchte emp_num,job_date Verbund eindeutiger Schlüssel sein.

+0

'unique (emp_num, job_date)' entweder in create table oder then alter table. – jarlh

+0

Die Felder dürfen keine Nullwerte enthalten. –

+0

die benutzerdefinierte Tabelle ist bereits vorhanden, ich möchte sie ändern –

Antwort

3

Sie können nicht UserDefined Tabellentypen, Sie müssen löschen und neu erstellen erneut für Änderungen ..

From MSDN ..

Benutzerdefinierte Typen können nicht geändert werden, nachdem sie erstellt werden, ändern weil Änderungen Daten in den Tabellen oder Indizes ungültig machen könnten. Um einen Typ zu ändern, müssen Sie entweder den Typ löschen und dann neu erstellen oder eine ALTER ASSEMBLY-Anweisung mit der Klausel WITH UNCHECKED DATA ausgeben.

Unten ist die Art und Weise eindeutige Einschränkung auf UserDefined Tabellentyp

CREATE TYPE test AS TABLE 
(col1 VARCHAR(50) 
, col2 INT , 
unique (col1,col2) 
); 

Hinweis zu schaffen: Wir können Constraints nicht nennen, so die Schaffung Zwänge wie normale Art und Weise nicht gültig ist ..

Beispiel unten

CREATE TYPE test AS TABLE 
    (col1 VARCHAR(50) 
    , col2 INT , 
    constraint test unique (col1,col2) 
    ); 
+0

Thi s benutzerdefinierte Tabelle –

+0

benutzerdefinierten Typ, ich werde meine Antwort bearbeiten – TheGameiswar

0
 
ALTER TABLE jobdata ADD CONSTRAINT [Unique_emp_num_ob_date] UNIQUE (
    emp_num 
    ,job_date 
    )