У меня есть сервер SQL, который содержит много баз данных. Все эти базы данных имеют одинаковую структуру таблицы. Я создаю приложение C# для подключения к этому серверу, а затем запускаю хранимые процедуры. Я создал хранимую процедуру в одной из баз данных, и мой код C# подключается к ней и запускает ее. Мой вопрос: могу ли я создать хранимую процедуру, которую я могу передать имя базы данных и заставить ее запустить.
Мой C# довольно прост. Я создал помощник класса для создания строки подключения. < /P>
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;
}
}
< /code>
В настоящее время я передаю имя базы данных 'selectedDB' для подключения и идентификатор запуска 'runId' для поиска.
Моя хранящаяся процедура проста. >
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>
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>
Тогда есть < /p>
var output = connection.Query("dbo.GetRun @SelectedDB, @RunId", new { SelectedDB = selectedDB, RunId = runId }).ToList();
У меня есть сервер SQL, который содержит много баз данных. Все эти базы данных имеют одинаковую структуру таблицы. Я создаю приложение C# для подключения к этому серверу, а затем запускаю хранимые процедуры. Я создал хранимую процедуру в одной из баз данных, и мой код C# подключается к ней и запускает ее. Мой вопрос: могу ли я создать хранимую процедуру, которую я могу передать имя базы данных и заставить ее запустить. Мой C# довольно прост. Я создал помощник класса для создания строки подключения. < /P> [code]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; } } < /code> В настоящее время я передаю имя базы данных 'selectedDB' для подключения и идентификатор запуска 'runId' для поиска. Моя хранящаяся процедура проста. > 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> 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> Тогда есть < /p> var output = connection.Query("dbo.GetRun @SelectedDB, @RunId", new { SelectedDB = selectedDB, RunId = runId }).ToList(); [/code] это возможно, и если да, то как?
У меня есть сервер SQL, который содержит много баз данных. Все эти базы данных имеют одинаковую структуру таблицы. Я создаю приложение C# для подключения к этому серверу, а затем запускаю хранимые процедуры. Я создал хранимую процедуру в одной из...
У меня есть сервер SQL, который содержит много баз данных. Все эти базы данных имеют одинаковую структуру таблицы. Я создаю приложение C# для подключения к этому серверу, а затем запускаю хранимые процедуры. Я создал хранимую процедуру в одной из...
Я разрабатываю Java-приложение, и мне нужно написать отдельную хранимую процедуру в MySQL для создания самой базы данных по запросу:
CREATE DATABASE IF NOT EXISTS db_name;
У меня есть экземпляр SQL Server, который содержит много баз данных. Все эти базы данных имеют одинаковую структуру таблицы. Я создаю приложение C# для подключения к этому серверу, а затем запускаю сохраненные процедуры. Полем Мой вопрос: могу ли я...
У меня есть экземпляр SQL Server, который содержит много баз данных. Все эти базы данных имеют одинаковую структуру таблицы. Я создаю приложение C# для подключения к этому серверу, а затем запускаю сохраненные процедуры. Полем Мой вопрос: могу ли я...