2017-09-16 9 views

答えて

1
select k.name,k.type,k.type_desc,k.object_id 
,col.name 
from sys.key_constraints k 
join 
sys.index_columns ic on ic.object_id=k.parent_object_id 
    and ic.object_id= object_id('t1') 
    join 
    sys.all_columns col 
    on col.column_id=ic.column_id 
    and ic.object_id=col.object_id 

は制約は、それが複合体であるよりも、複数のキーで構成されている場合..あなたは以下のように、カウントを行い、

その複合かどうかを確認することができます

name type type_desc object_id name 
t11 UQ UNIQUE_CONSTRAINT 1221579390 id 
t11 UQ UNIQUE_CONSTRAINT 1221579390 id1 

の下に私に与えますこのサンプルデータの

;with cte 
as 
(
select k.name,k.type,k.type_desc,k.object_id 
,col.name as colname,count(k.name) over (partition by k.name) as cnt 
from sys.key_constraints k 
join 
sys.index_columns ic on ic.object_id=k.parent_object_id 
and ic.object_id= object_id('t1') 
join 
sys.all_columns col 
on col.column_id=ic.column_id 
and ic.object_id=col.object_id 
) 

select *,case when cnt>=2 then 'composite' else 'not composite' end as 'Check' 
from cte 

create table t1 
(
id int, 
id1 int 
) 


Alter table t1 add constraint t11 unique (id,id1); 
+1

ありがとうございます。助けてください – user3756799

+0

あなたを助けてくれてうれしいです – TheGameiswar

関連する問題