SQL Server незакрытые кавычки, потому что вставьте строку с 's - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь написать расширенные свойства для каждого столбца таблицы из Python.Вот мой код:

for i in dat.columns:
    sql_query = """\
                EXEC sys.sp_addextendedproperty
                     @name = N'Description',
                     @value = N'{}',
                     @level0type = N'Schema', @level0name = '{}',
                     @level1type = N'Table',  @level1name = '{}',
                     @level2type = N'Column', @level2name = '{}'
                """.format(dat[i][0], db, tb, i)

Здесь dat [i] [0] содержит описание для каждого столбца.Тем не менее, одно из описаний похоже на balabalabala ... студенческую программу ... balabalabal, где в описании есть единичный символ ', и это вызывает ошибку.

pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Incorrect syntax near 's'. (102) (SQLExecDirectW); [42000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Unclosed quotation mark after the character string '\n                    '. (105)")

Как решить эту проблему?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Пожалуйста, используйте CHAR (39) вместо 'в вашем коде.

0 голосов
/ 16 октября 2018

При вставке строки, содержащей символ одинарных кавычек, в SQL Server используйте две последовательные одинарные кавычки.В вашем случае описание будет:

'Balabalabalabala... student''s program, balabalabala.'
...