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

Hvordan finder jeg en standardbegrænsning ved hjælp af INFORMATION_SCHEMA?

Som jeg forstår det, er standardværdibegrænsninger ikke en del af ISO-standarden, så de vises ikke i INFORMATION_SCHEMA. INFORMATION_SCHEMA virker som det bedste valg til denne type opgave, fordi den er på tværs af platforme, men hvis informationen ikke er tilgængelig, bør man bruge objektkatalogvisningerne (sys.*) i stedet for systemtabelvisninger, som er forældede i SQL Server 2005 og senere.

Nedenfor er stort set det samme som @user186476's svar. Det returnerer navnet på standardværdibegrænsningen for en given kolonne. (For ikke-SQL Server-brugere skal du bruge navnet på standarden for at slippe den, og hvis du ikke selv navngiver standardbegrænsningen, opretter SQL Server et skørt navn som "DF_TableN_Colum_95AFE4B5". For at gøre det nemmere at ændre dit skema i fremtiden, skal du altid udtrykkeligt navngive dine begrænsninger!)

-- returns name of a column's default value constraint SELECT default_constraints.name FROM sys.all_columns INNER JOIN sys.tables ON all_columns.object_id = tables.object_id INNER JOIN sys.schemas ON tables.schema_id = schemas.schema_id INNER JOIN sys.default_constraints ON all_columns.default_object_id = default_constraints.object_id WHERE schemas.name = 'dbo' AND tables.name = 'tablename' AND all_columns.name = 'columnname'

  1. LEAST() Funktion i PostgreSQL

  2. PDO indsæt sætning med loop gennem $_POST array

  3. Sådan gemmer du html i en mysql-database

  4. Tidsindstillet e-mail-påmindelse i python