Запустите файл сценария Sql с передачей имени базы данных из C#

#c# #asp.net #sql-server #asp.net-mvc

#c# #asp.net #sql-сервер #asp.net-mvc

Вопрос:

У меня есть SQL Script файл, который содержит создание базы данных, создание связанных с ней таблиц и другие вещи. Имя базы данных определяется на стороне клиента. Итак, есть ли какой-либо способ, которым я могу запустить этот файл сценария, в котором имя базы данных передается из моего кода?

Я знаю способ, при котором я беру какой-то специальный шаблон вместо имени базы данных, а затем в коде c # заменяю его на добавленное на стороне клиента имя базы данных. Но есть ли лучший способ сделать это?

Комментарии:

1. Я думаю, вы можете прочитать этот текст и выполнить его

2. @brykneval но имя базы данных будет задано пользователем.

3. Строка. Формат («Создать базу данных {0} ……», пользовательский ввод);

4. @brykneval Все сценарии записываются в файл.

5. вы можете загрузить текст из файла и даже отредактировать файл как Create database {0}, чтобы это было легко при загрузке

Ответ №1:

Если вы создаете таблицы «на лету» в своем приложении, вы пропустили некоторые основы проектирования базы данных. В реляционной базе данных набор таблиц и столбцов должен быть постоянным. Они могут меняться при установке новых версий, но не во время выполнения.

Вы можете проверить это здесь

 create proc createdb @dbname sysname
as
declare @sql nvarchar(max)
set @sql = 'create database '   QUOTENAME(@dbname)
exec (@sql)
  

Здесь вы можете передать @dbname в качестве параметра