sql server中列值 必须存在于另一表的一列的约束怎么写啊
sqlserver中列值必须存在于另一表的一列的约束怎么写啊因为是不同库下面的检验,两表没有直接关系,所以一定要是约束呵呵,我就要约束,让他自动判断,函数还要单独执行呢...
sql server中列值 必须存在于另一表的一列的约束怎么写啊
因为是不同库下面的检验,两表没有直接关系,所以一定要是约束
呵呵,我就要约束,让他自动判断,函数还要单独执行呢 展开
因为是不同库下面的检验,两表没有直接关系,所以一定要是约束
呵呵,我就要约束,让他自动判断,函数还要单独执行呢 展开
2个回答
展开全部
问题补充:
因为是不同库下面的检验,两表没有直接关系,所以一定要是约束
呵呵,我就要约束,让他自动判断,函数还要单独执行呢
-----------------------------------------
只可用下面的方法约束,下面的约束引用函数,函数引用Test.dbo.T判断,明白了没
用一个函数判断
go
USE Test
GO
CREATE TABLE t(ID INT PRIMARY KEY)
GO
USE tempdb
GO
CREATE FUNCTION chk_T2(@TID INT)
RETURNS BIT
AS
BEGIN
IF EXISTS(SELECT 1 FROM test.dbo.T WHERE ID=@TID)
RETURN 1
RETURN 0
END
go
CREATE TABLE t2(TID INT NOT NULL CHECK (dbo.chk_T2(TID)=1),Num int)
go
INSERT T2(TID,Num) VALUES(10,10)
go
SELECT * FROM Test.dbo.T
go
DROP TABLE T2
DROP FUNCTION chk_T2
DROP TABLE test.dbo.T
因为是不同库下面的检验,两表没有直接关系,所以一定要是约束
呵呵,我就要约束,让他自动判断,函数还要单独执行呢
-----------------------------------------
只可用下面的方法约束,下面的约束引用函数,函数引用Test.dbo.T判断,明白了没
用一个函数判断
go
USE Test
GO
CREATE TABLE t(ID INT PRIMARY KEY)
GO
USE tempdb
GO
CREATE FUNCTION chk_T2(@TID INT)
RETURNS BIT
AS
BEGIN
IF EXISTS(SELECT 1 FROM test.dbo.T WHERE ID=@TID)
RETURN 1
RETURN 0
END
go
CREATE TABLE t2(TID INT NOT NULL CHECK (dbo.chk_T2(TID)=1),Num int)
go
INSERT T2(TID,Num) VALUES(10,10)
go
SELECT * FROM Test.dbo.T
go
DROP TABLE T2
DROP FUNCTION chk_T2
DROP TABLE test.dbo.T
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询