Невозможно вставить одинарные кавычки в SQL Server 2016 - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь вставить данные в свой SQL Server и использую петлевую инфраструктуру в бэкенде.

Но во время вставки строки с одинарными кавычками я получаю сообщение об ошибке

RequestError: Незакрытая кавычка после символьной строки ', 8272) SELECT id AS insertId из @ insertIds

и строка, которую я пытаюсь вставить, выглядит следующим образом

An open-ended equity fund investing in stocks which are currently undervalued to their future earning potential and carry medium risk profile to provide 'Capital Appreciation',

Я попытался решить эту проблему, заменив одинарные кавычки, но после этого, когда я снова выбираю данные из базы данных, возникает эта ошибка.

Код выглядит примерно так

let mutualFundRecord = {

    fundObjective: An open-ended equity fund investing in stocks which are currently undervalued to their future earning potential and carry medium risk profile to provide 'Capital Appreciation'

   }

       function updateRecordData(mutualFundRecord, callback) {
            const promise = new Promise(function (resolve, reject) {
              let promiseP1;
              if (!mutualFundRecord.instrument || !mutualFundRecord.instrument.id) {

                promiseP1 = app.models.Instrument.create(mutualFundRecord)
                  .then(function (newlyCreatedInstrument) {
                    mutualFundRecord.mutualFundDetails.instrumentId = newlyCreatedInstrument.id;
                    return app.models.MutualFundDetails.create(mutualFundRecord.mutualFundDetails);
                  });
              }
    } 

1 Ответ

0 голосов
/ 20 мая 2019

Если вы попытаетесь присвоить строку с одинарными кавычками в переменной, вы получите ту же ошибку, что и в своем вопросе:

declare @text nvarchar(100) = 'That's all folks'

Ошибка: незакрытая кавычкапосле строки символов ''.

Вам нужно заменить каждый символ одинарной кавычки в строке двумя символами одинарной кавычки - это называется "экранирование" символа.

Следующий код представляет собой небольшую демонстрацию, которая покажет вам, что, хотя в коде вы видите два символа кавычки, в базу данных будет записана только одна кавычка:

declare @text nvarchar(100) = 'That''s all folks'

select @text as Txt
into #t

select Txt from #t

Это все люди

...