Есть несколько вещей, которые вы можете сделать для простой замены строки, однако я настоятельно рекомендую вам обратить внимание на параметризацию, чтобы обеспечить безопасность инъекций и повторное использование плана запросов.
Параметры также выигрывают, избегая вопроса о кавычках, поэтому просто замените 'default'
на (например) @p1
и все будет в порядке. Эта замена может быть:
-- TSQL
REPLACE(@cmd, '''default''', '@p1')
или
// C#
.Replace(@"'default'", @"@p1")
Из C # это будет DbCommand
с параметрами; из T-SQL вы можете рассмотреть sp_ExecuteSQL
. В любом случае, вы бы хотели получить:
select * from tblname where test = @p1
И поставьте @ p1 в качестве параметра. Итак, из C #:
DbParameter param = cmd.CreateParameter();
param.Value = 0; // etc
cmd.Parameters.Add(param);
Или из TSQL:
EXEC sp_ExecuteSQL @cmd, N'@p1 varchar(50)', 0
(заменить varchar(50)
на правильный тип)