IF (SELECT COUNT(*) FROM 表1 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表2 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表3 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表4 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表5 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表6 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表7 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表8 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表9 WHERE 主ID = ID) > 0 OR (SELECT COUNT(*) FROM 表10 WHERE 主ID = ID) > 0 THEN BEGIN ……………… END
理解错误,用函数,利用函数的返回值来判断属于哪个表(前提是ID只能是属于一个从表中,有可能共有一个ID,那就不是这样返回了) CREATE FUNCTION shuyubiao (@ID INT) RETURNS INT AS BEGIN DECLARE @AA INT SET @AA = 0 IF (SELECT COUNT(*) FROM 表1 WHERE 主ID = ID) > 0 THEN SET @AA = 1 IF (SELECT COUNT(*) FROM 表2 WHERE 主ID = ID) > 0 THEN SET @AA = 2 IF (SELECT COUNT(*) FROM 表3 WHERE 主ID = ID) > 0 THEN SET @AA = 3 IF (SELECT COUNT(*) FROM 表4 WHERE 主ID = ID) > 0 THEN SET @AA = 4 IF (SELECT COUNT(*) FROM 表5 WHERE 主ID = ID) > 0 THEN SET @AA = 5 IF (SELECT COUNT(*) FROM 表6 WHERE 主ID = ID) > 0 THEN SET @AA = 6 IF (SELECT COUNT(*) FROM 表7 WHERE 主ID = ID) > 0 THEN SET @AA = 7 IF (SELECT COUNT(*) FROM 表8 WHERE 主ID = ID) > 0 THEN SET @AA = 8 IF (SELECT COUNT(*) FROM 表9 WHERE 主ID = ID) > 0 THEN SET @AA = 9 IF (SELECT COUNT(*) FROM 表10 WHERE 主ID = ID) > 0 THEN SET @AA = 10 RETURN @AA END这样返回值为0则不属于任何表,1为表1,2为表2……
OR (SELECT COUNT(*) FROM 表2 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表3 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表4 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表5 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表6 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表7 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表8 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表9 WHERE 主ID = ID) > 0
OR (SELECT COUNT(*) FROM 表10 WHERE 主ID = ID) > 0 THEN
BEGIN
………………
END
CREATE FUNCTION shuyubiao (@ID INT)
RETURNS INT
AS
BEGIN
DECLARE @AA INT
SET @AA = 0
IF (SELECT COUNT(*) FROM 表1 WHERE 主ID = ID) > 0 THEN
SET @AA = 1
IF (SELECT COUNT(*) FROM 表2 WHERE 主ID = ID) > 0 THEN
SET @AA = 2
IF (SELECT COUNT(*) FROM 表3 WHERE 主ID = ID) > 0 THEN
SET @AA = 3
IF (SELECT COUNT(*) FROM 表4 WHERE 主ID = ID) > 0 THEN
SET @AA = 4
IF (SELECT COUNT(*) FROM 表5 WHERE 主ID = ID) > 0 THEN
SET @AA = 5
IF (SELECT COUNT(*) FROM 表6 WHERE 主ID = ID) > 0 THEN
SET @AA = 6
IF (SELECT COUNT(*) FROM 表7 WHERE 主ID = ID) > 0 THEN
SET @AA = 7
IF (SELECT COUNT(*) FROM 表8 WHERE 主ID = ID) > 0 THEN
SET @AA = 8
IF (SELECT COUNT(*) FROM 表9 WHERE 主ID = ID) > 0 THEN
SET @AA = 9
IF (SELECT COUNT(*) FROM 表10 WHERE 主ID = ID) > 0 THEN
SET @AA = 10 RETURN @AA
END这样返回值为0则不属于任何表,1为表1,2为表2……