#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 в качестве параметра