sql >> Database teknologi >  >> RDS >> Sqlserver

Få listen over unikke begrænsninger og indekser i en database

Da unikke begrænsninger er implementeret under omslagene som indekser, kan du få alle disse oplysninger direkte fra sys.indexes:

SELECT [schema] = OBJECT_SCHEMA_NAME([object_id]), [table] = OBJECT_NAME([object_id]), [index] = name, is_unique_constraint, is_unique, is_primary_key FROM sys.indexes -- WHERE [object_id] = OBJECT_ID('dbo.tablename');

For at gentage for alle databaser (og formentlig uden filteret for en specifik tabel):

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += 'SELECT db = ' + name + ',
    [schema] = OBJECT_SCHEMA_NAME([object_id]),
    [table]  = OBJECT_NAME([object_id]),
    [index]  = name, 
    is_unique_constraint,
    is_unique,
    is_primary_key
  FROM ' + QUOTENAME(name) + '.sys.indexes;'
FROM sys.databases
WHERE database_id BETWEEN 4 AND 32766;

EXEC sp_executesql @sql;
 


  1. Hvordan indsætter man array-nøgle som tabelkolonne og værdi som kolonneværdi i mysql ved hjælp af php?

  2. Sådan konfigureres c3p0 i dvale til automatisk at opdatere forældede DB-forbindelser

  3. Forespørgsel kører hurtigt i Query Analyzer, men langsomt i C#-applikation

  4. Fjern jsonb array element efter værdi