Sql server sp_为SQL Server 2008生成插入
我一直在SQL Server 2005数据库中使用Narayana Vyas Kondreddi的优秀存储过程Sql server sp_为SQL Server 2008生成插入,sql-server,sql-server-2008,sql-server-2005,stored-procedures,Sql Server,Sql Server 2008,Sql Server 2005,Stored Procedures,我一直在SQL Server 2005数据库中使用Narayana Vyas Kondreddi的优秀存储过程sp_generate_insert 但在迁移到SQL Server 2008之后,我得到了奇怪的结果,在UNIQUEIDENTIFIER值之后插入了一个长空白: INSERT INTO [BannerGroups]([Id], [DescriptionText], [Width], [Height]) VALUES('BFCD0173-9432-47D1-84DF-8AB3FB40B
sp_generate_insert
但在迁移到SQL Server 2008之后,我得到了奇怪的结果,在UNIQUEIDENTIFIER值之后插入了一个长空白:
INSERT INTO [BannerGroups]([Id], [DescriptionText], [Width], [Height])
VALUES('BFCD0173-9432-47D1-84DF-8AB3FB40BF76 ', 'Example', 145, NULL)
有人知道如何解决这个问题吗?似乎是这一部分,就在一半以上:
WHEN @Data_Type IN ('uniqueidentifier')
THEN
'COALESCE('''''''' + REPLACE(CONVERT(char(255),RTRIM(' + @Column_Name + ')),'''''''','''''''''''')+'''''''',''NULL'')'
请参阅它正在转换为字符(255),这意味着该值将被填充为255个字符。将其改为VARCHAR应该可以,因为这样不会用空格填充值。自SQL Server 2008以来,我们可以通过生成脚本实用程序本身生成插入脚本
要获得更详细的答案,请查看-有人知道为什么要转换为255字符/varchar,因为guid只有32个字符?我把它改成了那样,它似乎做得很好。