Код: Выделить всё
public List
GetRunId(string selectedDB, string runId)
{
using (IDbConnection connection = new Microsoft.Data.SqlClient.SqlConnection(Helper.CnnVal(selectedDB)))
{
var output = connection.Query("dbo.GetRun @RunId", new { RunId = runId }).ToList();
return output;
}
}
my хранящаяся процедура проста: < /p>
Код: Выделить всё
USE [RP_Reserved_1]
GO
/****** Object: StoredProcedure [dbo].[GetRun] Script Date: 02/13/2025 14:25:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetRun]
@RunId char(36)
AS
SELECT
RunId, RunDate, ActualDate, StopDate
FROM
ProcessRuns
WHERE
RunId = @RunId
< /code>
Я подключился к таблице в главной базе данных и просто запустил этот запрос. < /p>
SELECT
RunId, RunDate, ActualDate, StopDate
FROM
RP_Reserved_1.dbo.ProcessRuns
< /code>
Он перенесла в другую базу данных и вернул данные. Это заставляет меня думать, что это возможно, но я действительно понятия не имею, как заставить его работать. Я хочу избежать хода в каждую базу данных и создавать в ней ту же хранимую процедуру. /p>
Так что -то вроде следующего: < /p>
USE @SelectedDB
GO
/****** Object: StoredProcedure [dbo].[GetRun] Script Date: 02/13/2025 14:25:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetRun]
@RunId char(36)
AS
SELECT
RunId, RunDate, ActualDate, StopDate
FROM
ProcessRuns
WHERE
RunId = @RunId
< /code>
Тогда я мог бы иметь этот код C#, вызовите его: < /p>
var output = connection.Query
("dbo.GetRun @SelectedDB, @RunId", new { SelectedDB = selectedDB, RunId = runId }).ToList();
Подробнее здесь: https://stackoverflow.com/questions/794 ... -databases