Create a Stored Procedure with 2 parameters (input PhoneNumber, output Exists) that contains a UNION query for all 4 tables. Then in C# you can call that Stored Procedure with those 2 parameters and find out if it exists or not.
SQL Stored Procedure
CREATE PROCEDURE dbo.usp_PhoneNumberCheck (
@PhoneNumber NVARCHAR(100),
@Exists BIT OUTPUT = 1
)
AS
BEGIN
; WITH cte AS (
SELECT PhoneNumber FROM DatabaseName1.SchemaName.TableName
UNION
SELECT PhoneNumber FROM DatabaseName2.SchemaName.TableName
UNION
SELECT PhoneNumber FROM DatabaseName3.SchemaName.TableName
UNION
SELECT PhoneNumber FROM DatabaseName4.SchemaName.TableName
)
IF NOT EXISTS ( SELECT 1 FROM cte WHERE PhoneNumber = @PhoneNumber) BEGIN
SET @Exists = 0
END
END
GO
C# method guts
string PhoneNumber = "9115551212";
bool NumberExists = true;
using (SqlConnection conn = new SqlConnection("ConnectionString")) {
SqlCommand cmd = new SqlCommand("dbo.usp_PhoneNumberCheck", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter outputExists = new SqlParameter("@Exists", SqlDbType.Bit) {Direction = ParameterDirection.Output};
cmd.Parameters.AddWithValue("@PhoneNumber", PhoneNumber);
cmd.Parameters.Add(outputExists);
conn.Open();
cmd.ExecuteNonQuery();
NumberExists = outputExists.value;
conn.Close();
}