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

Underforespørgsler i kontrolbegrænsning

Bemærk, hvad du virkelig ønsker, er en fremmednøglebegrænsning. Når det er sagt, for at få en "forespørgsel" ind i en check kan du skrive en funktion, der indeholder forespørgslen og udsender en skalarværdi, og derefter bruge den funktion i check-begrænsningen.

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

Noget i den stil. Ikke testet.

Så kan du tilføje det til din check på den måde

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


  1. `pg_tblspc` mangler efter installation af seneste version af OS X (Yosemite eller El Capitan)

  2. JPA 2 @SequenceGenerator @GeneratedValue producerer unik overtrædelse af begrænsninger

  3. Hvorfor viser VS2010 oracle-forespørgselsvinduet ikke output

  4. ODP.Net - OracleDataReader.Read meget langsomt