Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak utworzyć domyślną inną kolumnę zależną od ograniczeń w serwerze sql?

Potrzebujesz kolumny wyliczanej. Na przykład:

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

Możesz dodać do istniejącej tabeli, używając następującej składni:

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

Możesz utrwalić kolumnę, dodając słowo kluczowe PERSISTED po utworzeniu kolumny. Utrzymanie kolumny oznacza, że ​​pole jest przechowywane na dysku. Po wstawieniu lub zaktualizowaniu rekordu serwer SQL obliczy w tym momencie wartość. Jeśli tego nie zrobisz, SQL Server będzie musiał to rozpracować za każdym razem, gdy uzyskasz dostęp do wiersza. Dobre wyjaśnienie można znaleźć na SQL Server 2005 Computed Kolumna jest utrwalona

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Implementacja trybu failover w standardzie MS SQL Server 2017

  2. Wielka sprawa:dodatek Service Pack 1 dla programu SQL Server 2016

  3. Używanie CASE do zwracania ciągu, jeśli nie ma wyników z instrukcji SELECT

  4. sp_MSForEachDB Nieprawidłowe użycie operatora powodującego skutki uboczne w ramach funkcji

  5. Wydajność zapytań Entity Framework różni się ekstremalnie od wykonywania surowego kodu SQL