SQL Server 2008中的sp_generate_inserts是什么?

6
我一直在使用Narayana Vyas Kondreddi的优秀存储过程“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
似乎是这个部分,在中间位置的有一半多一点:

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

可以看到它被转换为CHAR(255),这意味着该值被填充到255个字符。将其改为VARCHAR,就不会使用空格填充值,应该就可以正常工作了。


有人知道为什么要将字符数/变长字符数转换为255,因为GUID只有32个字符吗?我已经将其更改为255,并且似乎工作得很好。 - Antonio Terreno

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接