將表中資料轉換成Insert語句

2021-06-03 12:17:09 字數 2212 閱讀 4375

/****** object:  storedprocedure [dbo].[spgeninsertsql]    script date: 02/01/2012 10:48:38 ******/

set ansi_nulls on

goset quoted_identifier on

goalter procedure [dbo].[spgeninsertsql]

@tablename varchar(256)

asbegin

declare @sql varchar(8000)

declare @sqlvalues varchar(8000)

set @sql =' ('

set @sqlvalues = 'values (''+'

select @sqlvalues = @sqlvalues + cols + ' + '','' + ' ,@sql = @sql + '[' + name + '],'

from

(select case

-- select * from systypes 來檢視各型別對應號碼

when xtype in (48,52,56,59,60,62,104,106,108,122,127) --int,real

then 'case when '+ name +' is null then ''null'' else ' + 'cast('+ name + ' as varchar)'+' end'

when xtype in (58,61) --datetime,samlldatetime

then 'case when '+ name +' is null then ''null'' else '+''''''''' + ' + 'cast('+ name +' as varchar)'+ '+'''''''''+' end'

when xtype in (167) --varchar

then 'case when '+ name +' is null then ''null'' else '+''''''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'

when xtype in (231)--nvarchar

then 'case when '+ name +' is null then ''null'' else '+'''n'''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'

when xtype in (175) --char

then 'case when '+ name +' is null then ''null'' else '+''''''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as char(' + cast(length as varchar) + '))+'''''''''+' end'

when xtype in (239) --nchar

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 autoval is null and id = object_id(@tablename) and xtype <>189 and xtype <>34 and xtype <>35 and xtype <>36

) t

set @sql ='select ''insert into ['+ @tablename + ']' + left(@sql,len(@sql)-1)+') ' + left(@sqlvalues,len(@sqlvalues)-4) + ')'' from '+@tablename

--print @sql

exec (@sql)

end

excel資料轉換成insert語句

excel 中有a b c三列資料,希望匯入到資料庫users表中,對應的字段分別是name,age 在你的excel 中增加一列,利用excel的公式自動生成sql語句,方法如下 1 增加一列 d列 2 在第一行的d列,就是d1中輸入公式 concatenate insert into users...

將Excel中的資料轉換成sql Insert語句

excel 中有a b c三列資料,希望匯入到資料庫users表中,對應的字段分別是name,age 在你的excel 中增加一列,利用excel的公式自動生成sql語句,方法如下 1 在你的excel 中增加一列 2 在第一行的d列,就是d1中輸入公式 concatenate insert int...

將Excel中的資料轉換成sql Insert語句

1.或者用sql server 2000 還有 匯入的方法就是mdb檔案,access 2003 中的方法但是有個列的問題。excel 中有a b c三列資料,希望匯入到資料庫users表中,對應的字段分別是name,age 在你的excel 中增加一列,利用excel的公式自動生成sql語句,方法...