필자에게 필요한 고유 한 제약 조건 목록이 있습니다.방법 : 고유 제약 생성 스크립트를 스크립트 아웃
쉬운 방법이 있나요? (sp_help, sys.objects, .. 쿼리와 같은 것) 또는 30 개 이상의 테이블에서 모든 제약 조건에 대해 수동으로이 작업을 수행해야합니까?
해결 방법 내가 지금 사용하고 있습니다 : SSMS에서
- 개체 탐색기
- 데이터베이스
- 표
- 제약
- '스크립트 제약 등'
- 'CREATE ~ '
필자에게 필요한 고유 한 제약 조건 목록이 있습니다.방법 : 고유 제약 생성 스크립트를 스크립트 아웃
쉬운 방법이 있나요? (sp_help, sys.objects, .. 쿼리와 같은 것) 또는 30 개 이상의 테이블에서 모든 제약 조건에 대해 수동으로이 작업을 수행해야합니까?
해결 방법 내가 지금 사용하고 있습니다 : SSMS에서
당신이 뭔가를 시도 할 수 있습니다 :
SELECT
ColumnName = c.name,
TableName = t.name,
CreateCmd = 'ALTER TABLE ' + OBJECT_SCHEMA_NAME(t.object_id) + '.' + t.name + ' ADD CONSTRAINT ' + i.name + ' UNIQUE(' + c.name + ')'
FROM
sys.indexes i
INNER JOIN
sys.index_columns ic ON i.index_id = ic.index_id AND i.object_id = ic.object_id
INNER JOIN
sys.columns c ON ic.column_id = c.column_id AND ic.object_id = c.object_id
INNER JOIN
sys.tables t ON c.object_id = t.object_id
WHERE
is_unique_constraint = 1
이 당신에게 고유 제한 조건에 적용되는 컬럼과 테이블의 목록을 제공하고 당신에게 T-SQL을 제공합니다 새로 생성하는 명령 UNIQUE CONSTRAINT
Powershell을 사용한 적이 있습니까?
$null = [Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo");
$svr = New-Object Microsoft.SqlServer.Management.Smo.Server("YourServerInstance");
$svr.Databases["YourDatabase"].Tables[0].Indexes[0].Script();
Databases
, Tables
및 Indexes
는 반복 할 수 모음입니다.