Это было бы сделано по требованию, возможное несколько раз в день. Путем я видел бы, что это работать как в http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html , где базы данных объединяются в большой DB, выполненный запрос и затем большая удаленная база данных.
Вам нужно удвоить одинарные кавычки следующим образом:
REPLACE(@strip, '''', '')
Попробуйте REPLACE (@strip, '' '', '')
SQL
использует две кавычки для представления одной в строке.
Если вам действительно нужно полностью исключить одинарные кавычки, вы можете сделать это:
Replace(@strip, '''', '')
Однако обычно вы заменяете «на», и это сделает SQL Server счастливым при запросе базы данных. . Уловка с любой из встроенных функций SQL (например, replace) заключается в том, что они тоже требуют от вас удвоения одинарных кавычек.
Итак, чтобы заменить "на" в коде, вы должны сделать следующее:
Replace(@strip, '''', '''''')
Of конечно ... в некоторых ситуациях вы можете полностью избежать этого, если используете параметры при запросе базы данных. Предположим, вы запрашиваете базу данных из приложения .NET, тогда вы использовали бы класс SqlParameter для передачи параметров SqlCommand для запроса, и все эти операции с одиночными кавычками будут выполнены автоматически.
Похоже, вы пытаетесь дублировать функцию QUOTENAME . Эта встроенная функция может использоваться для добавления разделителей и правильного экранирования разделителей внутри строк и распознает как одиночные '
, так и двойные »
кавычки в качестве разделителей, а также скобки [
и ]
.
Попробуйте экранировать одинарные кавычки одинарными кавычками:
Replace(@strip, '''', '')
Чередование / замена / выравнивание одинарных кавычек из пользовательского ввода ( очистка ввода ) должно быть выполнено до того, как оператор SQL достигнет базы данных .
Помимо необходимости экранировать кавычки (используя двойные кавычки), вы также перепутали имена переменных: вы используете @var и @strip вместо @CleanString и @strStrip ...