Как переключить одинарные кавычки в двойные одинарные кавычки при выводе из оператора SELECT T-SQL - PullRequest
1 голос
/ 28 декабря 2010

Я пытаюсь создать сценарий создания INSERT SQL для данных в таблице. (аналогично SQL Server, встроенному в скрипты)

DECLARE @HEADER varchar(255)

SET @HEADER = 'insert into Table ( Column1 , Column2)
values ( N'''

SELECT 
@Header + Column1 + ''', N''' + Column2 + ''')'
+ CHAR(10)
FROM Table
ORDER BY Column1

В столбце 1 у меня есть текст, который содержит одинарные кавычки, и мне нужно, чтобы он получался в виде текста в двойных одинарных кавычках, как это происходит при использовании «Создать сценарии» непосредственно из SQL Server.

Ответы [ 3 ]

4 голосов
/ 28 декабря 2010

Используйте функцию REPLACE, чтобы удвоить ваши кавычки, и вам нужно заключить полученную строку в кавычки.Обратите внимание, что это работает для NOT NULL столбцов, поэтому настройте его, если вам нужно поддерживать пустые столбцы.

SELECT
  'INSERT INTO Table (Column1, Column2) VALUES (N''' +
     REPLACE(Column1, '''', '''''') + ''', N''' +
     REPLACE(Column2, '''', '''''') + ''')'
FROM Table
ORDER BY Column1
2 голосов
/ 28 декабря 2010

Вы можете использовать функцию QUOTENAME .

SELECT 
@Header + QUOTENAME(Column1) + ''', N''' + Column2 + ''')'
+ CHAR(10)
FROM Table
ORDER BY Column1
0 голосов
/ 28 декабря 2010

Я предполагаю, что вы хотите сгенерировать скрипт вставки на основе существующей таблицы?

Я бы порекомендовал вам скачать SSMS Tools . Это отличное дополнение с дополнительными функциями для использования с SSMS. Одна из этих функций позволяет вам щелкнуть правой кнопкой мыши таблицу и сгенерирует для вас скрипт вставки, содержащий данные в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...