sql >> Databáze >  >> RDS >> Sqlserver

Jak vytvořit výchozí jiný sloupec závislý na omezení na serveru SQL

Chcete vypočítaný sloupec. Například:

CREATE TABLE tab1
(
 ID INT IDENTITY(1,1)
,[Type] VARCHAR(10)
,IsValued AS CASE [Type] WHEN 'S' THEN 1
                         WHEN 'R' THEN 0
             END
)

Do existující tabulky můžete přidat pomocí následující syntaxe:

ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
                                                 WHEN 'R' THEN 0
                                     END

Sloupec můžete nastavit jako trvalý přidáním klíčového slova PERSISTED po vytvoření sloupce. Přetrvávání sloupce znamená, že pole je uloženo na disku. Když vložíte nebo aktualizujete záznam, SQL server zjistí hodnotu v tomto bodě. Pokud tak neučiníte, SQL Server to bude muset vyřešit při každém přístupu k řádku. Dobré vysvětlení lze nalézt na SQL Server 2005 Computed Sloupec je trvalý

ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
                                                 WHEN 'R' THEN 0
                                     END PERSISTED



  1. Vložte malý slovník jako {1:23, 2:45, 3:17} do sloupce tabulky databáze SQL v Postgresu pomocí jazyka python

  2. Udělte uživateli všechna oprávnění ve schématu Oracle

  3. Problém s instalací Ruby on Rails - Jak používat instalaci WAMP MySQL?

  4. Existuje nějaký rozdíl mezi DATE_SUB() a použitím aritmetických operátorů pro výpočet data a času?