Lưu ý, những gì bạn thực sự muốn là một ràng buộc khóa ngoại. Điều đó nói rằng, để đưa một "truy vấn" vào séc, bạn có thể viết một hàm có chứa truy vấn và xuất ra một giá trị vô hướng, sau đó sử dụng hàm đó trong ràng buộc kiểm tra.
CREATE FUNCTION myFunction (
@field DATATYPE(?)
)
RETURNS VARCHAR(5)
AS
BEGIN
IF EXISTS (SELECT* FROM Table2 WHERE MYFIELD = @field)
return 'True'
return 'False'
END
Đại loại vậy. Không được kiểm tra.
Sau đó, bạn có thể thêm nó vào séc của mình như vậy
ALTER TABLE Table1
WITH CHECK ADD CONSTRAINT CK_Code
CHECK (myFunction(MYFIELD) = 'True')