Как легко настроить образец Stackoverflow с примерами операторов CREATE TABLE / INSERT VALUES - PullRequest
0 голосов
/ 22 декабря 2010

Я ищу простой способ создания операторов DROP TABLE, CREATE TABLE и INSERT VALUES из оператора SELECT для моих примеров, которые я публикую на Stackoverflow.

Обычно я могу получить инструкцию SELECT для возврата небольшого подмножества данных, которые я хочу использовать в качестве образца. Оттуда я хотел бы создать DROP TABLE, CREATE TABLE и INSERT VALUES.

Вот пример оператора SELECT

SELECT ad.ApplicantDetailID,
    ad.ApplicantMasterID,
    ad.DateEffective,
    ad.CorrespondenceTypeID,
    ad.Value
FROM tblApplicantDetail AS ad
WHERE ad.CorrespondenceTypeID = 34
AND ad.ApplicantMasterID IN (41145,37046,45536,46764)
ORDER BY ad.ApplicantMasterID, ad.DateEffective

Это состояние SELECT возвращает 6 строк.

То, что я хотел бы сделать, это сделать функцию SELECT в качестве ввода и сгенерировать следующий код TSQL (DROP TABLE, CREATE TABLE и INSERT VALUES). Второй параметр можно использовать для отправки имени временной таблицы (то есть в приведенном ниже примере #ApplicantDetail)

IF OBJECT_ID('tempdb..#ApplicantDetail') IS NOT NULL DROP TABLE #ApplicantDetail
CREATE TABLE #ApplicantDetail (
    [ApplicantDetailID] [int] NOT NULL,
    [ApplicantMasterID] [int] NOT NULL,
    [DateEffective] [datetime] NOT NULL,
    [CorrespondenceTypeID] [int] NOT NULL,
    [Value] [varchar](20) NULL
    )
GO   
INSERT #ApplicantDetail VALUES (197542,37046,'2003-05-13 00:00:00.000',34,'8')
INSERT #ApplicantDetail VALUES (217963,41145,'1994-03-11 00:00:00.000',34,'')
INSERT #ApplicantDetail VALUES (217965,41145,'1994-03-21 00:00:00.000',34,'NS')
INSERT #ApplicantDetail VALUES (238961,45536,'2003-10-22 00:00:00.000',34,'')
INSERT #ApplicantDetail VALUES (238963,45536,'2003-12-03 00:00:00.000',34,'4')
INSERT #ApplicantDetail VALUES (244910,46764,'2003-12-03 00:00:00.000',34,'NS')

Оттуда я надеюсь просто вырезать и вставить сгенерированный код в Stackoverflow.

Эта функция сэкономит мне (сообществу Stackoverflow) много времени при настройке некоторых образцов тестовых данных.

Так как #ApplicantDetail создан выше, вы можете использовать этот оператор SELECT в своем примере. Он вернет две записи.

SELECT * 
FROM #ApplicantDetail AS ad
WHERE ad.ApplicantMasterID = 45536

Может быть, вызвать функцию GenerateSampleTSQLData.

Вот идея о том, как может выглядеть функция. Я не эксперт по созданию функций, поэтому меняйте синтаксис по мере необходимости.

GenerateSampleTSQLData('SELECT * 
  FROM #ApplicantDetail AS ad
  WHERE ad.ApplicantMasterID = 45536',
'#AppDet')

Я работаю на SQL Server 2005, но буду обновляться до 2008.
Если бы вы могли заставить его работать на одном из них, это было бы здорово.

Теперь я собираюсь опубликовать еще один вопрос, который фактически будет использовать этот пример данных.
Большое спасибо.

1 Ответ

3 голосов
/ 22 декабря 2010

шаг 1.. Скачать SSMS Tools Pack (он бесплатный) и установить его http://www.ssmstoolspack.com/

шаг 2 выполнить запрос

шаг 3 щелкнуть правой кнопкой мыши на результате и выбрать Script Grid Resultsсм. изображение ниже) alt text

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