Дейл упомянул, что мне потребуется отдельная хранимая процедура для каждой базы данных, что дало мне идею разбить ее на две отдельные; тот, который только определяет, какую базу данных использовать, а затем передает значения другой, которая фактически добавляет студенческую запись. Это не особенно элегантно, но позволяет вам многое делать в SQL:
Во-первых, запрос, который добавляет учащегося, именно так, как вы ожидаете, - поместите его в каждую из баз данных:
CREATE Procedure [dbo].[AddStudent] (@FirstName char(10), @LastName char(10)) AS
INSERT INTO SCHOOL1.dbo.Student (FirstName, LastName) VALUES
(@FirstName, @LastName);
Затем еще один, который может находиться в основной базе данных или, альтернативно, в каждой из баз данных, в зависимости от того, что наиболее удобно отправлять на:
CREATE Procedure [dbo].[AddStudentUniversal] (@DbName char(10), @FirstName char(10), @LastName char(10)) AS
IF (@DbName = 'SCHOOL1') EXECUTE SCHOOL1.dbo.AddStudent @FirstName, @LastName
IF (@DbName = 'SCHOOL2') EXECUTE SCHOOL2.dbo.AddStudent @FirstName, @LastName