Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sp_为SQL Server 2008生成插入_Sql Server_Sql Server 2008_Sql Server 2005_Stored Procedures - Fatal编程技术网

Sql server sp_为SQL Server 2008生成插入

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

我一直在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-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个字符?我把它改成了那样,它似乎做得很好。