динамическое имя базы данных sql заменить - PullRequest
0 голосов
/ 07 июня 2018

У меня есть требование, при котором я должен заменить имена баз данных в динамическом sql новыми именами баз данных.

что-то вроде следующего:

select * from DBName.TableName

должно стать

select * from newDBName.TableName 

select * from [DbName].TableName

должно стать

select * from [NewDbName].TableName

Я пробовал метод string.Replace(), но он не учитывает все комбинации, которые программист может записать в базу данных в динамический sql

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 07 июня 2018

Вместо того, чтобы пытаться заменить части строки, вы должны использовать отформатированную строку и передать параметр.Например:

var query = String.Format("select * from {0}.TableName", newDB)

используется в методе, в котором вы можете передать новое имя БД и вернуть новый запрос.

public static string GetNewQuery(string newDB) {
    return String.Format("select * from [{0}].TableName", newDB);
}

приведет к «select * from [newDB].TableName "

https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...