下面是编程之家 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) END go EXEC #usp_GenInsertSql test
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。