sp_generate_inserts для SQL Server 2008 - PullRequest
5 голосов
/ 20 января 2012

Я использовал отличную хранимую процедуру Нараяны Вьяса Кондредди sp_generate_inserts http://vyaskn.tripod.com/code/generate_inserts.txt в базе данных SQL Server 2005.

Но после перехода на SQL Server 2008 я получаю странные результаты, когда длинный пробел вставляется после значений UNIQUEIDENTIFIER:

INSERT INTO [BannerGroups]([Id], [DescriptionText], [Width], [Height]) 
VALUES('BFCD0173-9432-47D1-84DF-8AB3FB40BF76                                                                                                                                                                                                                           ', 'Example', 145, NULL)

Кто-нибудь знает, как это исправить?

Ответы [ 2 ]

9 голосов
/ 20 января 2012

Кажется, что это раздел, чуть более половины пути вниз:

WHEN @Data_Type IN ('uniqueidentifier') 
                THEN  
                    'COALESCE('''''''' + REPLACE(CONVERT(char(255),RTRIM(' + @Column_Name + ')),'''''''','''''''''''')+'''''''',''NULL'')'

Смотрите, он конвертируется в CHAR (255), что означает, что значение дополняется до 255 символов.Вместо этого замените его на VARCHAR, и все будет хорошо, так как это не будет дополнять значения пробелами.

1 голос
/ 20 января 2012

Начиная с SQL Server 2008, мы можем генерировать сценарии INSERT с помощью самой утилиты Generate Script.

Для более подробного ознакомления с ответом - Каков наилучший способ автоматической генерации операторов INSERT для таблицы SQL Server?

...