
下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
CREATE PROCEDURE #usp_GenInsertsql (@tablename VARCHAR(256))AS BEGIN DECLARE @sql VARCHAR(MAX) DECLARE @sqlValues VARCHAR(MAX) SET @sql =' (' SET @sqlValues = 'values (''+' SELECT @sqlValues = @sqlValues + cols + ' + '','' + ',@sql = @sql + QUOTEname(name) + ',' FROM (SELECT CASE WHEN xtype IN ( 48,52,56,59,60,62,104,106,108,122,127 ) THEN 'case when ' + name + ' is null then ''NulL'' else ' + 'cast(' + name + ' as varchar)' + ' end' WHEN xtype IN ( 58,61 ) THEN 'case when ' + name + ' is null then ''NulL'' else ' + ''''''''' + ' + 'cast(' + name + ' as varchar)' + '+''''''''' + ' end' WHEN xtype = 167 THEN 'case when ' + name + ' is null then ''NulL'' else ' + ''''''''' + ' + 'replace(' + name + ','''''''','''''''''''')' + '+''''''''' + ' end' WHEN xtype = 231 THEN 'case when ' + name + ' is null then ''NulL'' else ' + '''N'''''' + ' + 'replace(' + name + ','''''''''''')' + '+''''''''' + ' end' WHEN xtype = 175 THEN 'case when ' + name + ' is null then ''NulL'' else ' + ''''''''' + ' + 'cast(replace(' + name + ','''''''''''') as Char(' + Cast(length AS VARCHAR) + '))+''''''''' + ' end' WHEN xtype = 239 THEN 'case when ' + name + ' is null then ''NulL'' else ' + '''N'''''' + ' + 'cast(replace(' + name + ','''''''''''') as Char(' + Cast(length AS VARCHAR) + '))+''''''''' + ' end' ELSE '''NulL''' END AS Cols,name FROM syscolumns WHERE ID = Object_ID(@tablename)) T SET @sql ='select ''INSERT INTO [' + @tablename + ']' + left(@sql,Len(@sql)-1) + ') ' + left(@sqlValues,Len(@sqlValues)-4) + ')'' from ' + @tablename + ';' EXEC (@sql) ENDgoEXEC #usp_GenInsertsql test 以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的自动生成INSERT语句的SQL存储过程全部内容,希望文章能够帮你解决自动生成INSERT语句的SQL存储过程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)