mam ten typ zdefiniowany przez użytkownika, które chciałbym, aby dodać klucz podstawowy lub indeks:Jak dodać indeks lub klucz podstawowy do typu tabeli zdefiniowanego przez użytkownika w SQL Server?
IF NOT EXISTS (
SELECT *
FROM sys.types st
JOIN sys.schemas ss
ON st.schema_id = ss.schema_id
WHERE st.name = N'DistCritGroupData'
AND ss.name = N'dbo')
BEGIN
CREATE TYPE [dbo].[DistCritGroupData] AS TABLE
(
[DistCritTypeId] [int] NOT NULL,
[ItemAction] [int] NOT NULL,
[ObjectId] [int] NOT NULL,
[OperatorType] [int] NOT NULL
);
END;
GO
I w zasadzie chciałby albo dodać klucz podstawowy lub indeksu klastrowego. Próbowałem tego, ale pojawia się błąd "Nie można znaleźć obiektu" dbo.DistCritGroupData ", ponieważ nie istnieje lub nie masz uprawnień.
CREATE TYPE [dbo].[DistCritGroupData] AS TABLE
(
[DistCritTypeId] [int] NOT NULL,
[ItemAction] [int] NOT NULL,
[ObjectId] [int] NOT NULL,
[OperatorType] [int] NOT NULL,
CONSTRAINT [DistCritGroupData0] PRIMARY KEY CLUSTERED
(
[DistCritTypeId] ASC
)
);
widzę w Eksploratorze obiektów w moim zdefiniowanego przez użytkownika typu tabeli, które istnieją sekcje dla „Kolumny”, „Keys”, „ograniczenia” i „indeksów”. Pytanie brzmi: jak mogę dodać klucz lub indeks?
Czy "Podstawowy klucz tabeli xyz" jest prawidłowym identyfikatorem? Potrzebna jest jakaś nazwa dla sys.objects .. – gbn
@ gbn Jest to absolutnie wyjątkowe i możesz ocenić unikatową wygenerowaną nazwę z tabel systemowych, jeśli musisz. –
Potrzebny jest nazwany klucz lub ograniczenie, gdy pracujesz z kontrolą źródła. Wymienione klucze lub ograniczenia są bardzo pomocne. – eghetto