我有一个要求,我必须用新的数据库名称替换动态sql中的数据库名称。
类似以下内容:
select * from DBName.TableName
应该成为
select * from newDBName.TableName
select * from [DbName].TableName
应该成为
select * from [NewDbName].TableName
我尝试了string.Replace()
方法但是并不尊重程序员可以在动态sql中编写数据库名称的所有组合
请帮忙。
答案 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