sql >> Database >  >> RDS >> Sqlserver

Subquery's in controlebeperking

Let op, wat u echt wilt, is een beperking van een externe sleutel. Dat gezegd hebbende, om een ​​"query" in een controle te krijgen, kunt u een functie schrijven die de query bevat en een scalaire waarde uitvoert, en die functie vervolgens gebruiken in de controlebeperking.

CREATE FUNCTION myFunction (
    @field DATATYPE(?)
)
RETURNS VARCHAR(5)
AS
BEGIN
    IF EXISTS (SELECT* FROM Table2 WHERE MYFIELD = @field)
        return 'True'
    return 'False'
END

Zoiets. Niet getest.

Dan kun je het zo aan je cheque toevoegen

ALTER TABLE Table1
    WITH CHECK ADD CONSTRAINT CK_Code
    CHECK (myFunction(MYFIELD) = 'True')


  1. Telefoonnummers zoeken in mysql

  2. Oracle-prestaties weergeven met rownum

  3. Oracle-query als bron in SSIS definieert verkeerde gegevenstypen

  4. MySQL Workbench-alternatieven - Point-and-Click GUI van ClusterControl