动态sql数据库名称替换

时间:2018-06-07 04:50:31

标签: c# sql dynamic replace

我有一个要求,我必须用新的数据库名称替换动态sql中的数据库名称。

类似以下内容:

select * from DBName.TableName

应该成为

select * from newDBName.TableName 

select * from [DbName].TableName

应该成为

select * from [NewDbName].TableName

我尝试了string.Replace()方法但是并不尊重程序员可以在动态sql中编写数据库名称的所有组合

请帮忙。

1 个答案:

答案 0 :(得分:0)

您应该使用格式化的字符串并传入参数,而不是尝试替换字符串的某些部分。例如:

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