存储过程:SP_BulkInsertFromExcel   
功能说明:根据Excel文件导入数据库中的表   
维护记录:   
调用方式:EXEC SP_BulkInsertFromExcel 'C:鞍山市地方税务局登记信息表.xls','aaaa','组织机构代码,注册号,企业名称,法定代表人,纳税人标识,注册地址,纳税人主管税务机关,主体税种,登记状态','地税登记信息' 
联系方式:[email=Spark.Zou@hotmail.com]Spark.Zou@hotmail.com[/email]   
创建日期:2007-05-07 22:26:09.873   
注意事项:   
版权信息: 邹黎鹏   
 
 
根据Excel文件导入数据库中的表CREATE  PROC  SP_BulkInsertFromExcel   
根据Excel文件导入数据库中的表@fname   NVARCHAR(260),   
根据Excel文件导入数据库中的表@sheename  Nvarchar(256), 
根据Excel文件导入数据库中的表@columnname varchar(2000), 
根据Excel文件导入数据库中的表@TABLENAME  VARCHAR(100)   
根据Excel文件导入数据库中的表as   
根据Excel文件导入数据库中的表set nocount on   
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表declare @srv_name sysname,@sql nvarchar(4000),@COLUMN VARCHAR(2000),@IDENTITYNAME VARCHAR(100),@SQLWhere varchar(2000)   
根据Excel文件导入数据库中的表SELECT @COLUMN='',@IDENTITYNAME='',@SQLWhere='',@sql='' 
根据Excel文件导入数据库中的表   
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表SELECT @COLUMN=@COLUMN+','+NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(@TABLENAME) AND NAME NOT IN   
根据Excel文件导入数据库中的表  (   
根据Excel文件导入数据库中的表  SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns   
根据Excel文件导入数据库中的表     WHERE TABLE_NAME=@TABLENAME AND  COLUMNPROPERTY(         
根据Excel文件导入数据库中的表        OBJECT_ID(@TABLENAME),COLUMN_NAME,'IsIdentity')=1   
根据Excel文件导入数据库中的表  )   
根据Excel文件导入数据库中的表 ORDER BY COLORDER   
根据Excel文件导入数据库中的表SET @COLUMN=STUFF(@COLUMN,1,1,'')   
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表SELECT   @SQLWhere=@SQLWhere+' and '+A.NAME+'<>'''' AND '   FROM SYSCOLUMNS A   
根据Excel文件导入数据库中的表 LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT=E.ID   
根据Excel文件导入数据库中的表WHERE A.ID=OBJECT_ID(@TABLENAME) AND A.ISNULLABLE!=1 AND ISNULL(E.TEXT,'')=''   
根据Excel文件导入数据库中的表   
根据Excel文件导入数据库中的表SET @SQLWhere=stuff(@SQLWhere,1,1,'')   
根据Excel文件导入数据库中的表SET @SQLWhere=LEFT(@SQLWhere,LEN(@SQLWhere)-3)   
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表if @SQLWhere<>'' 
根据Excel文件导入数据库中的表begin 
根据Excel文件导入数据库中的表SET @sql=' INSERT INTO '+@TABLENAME+' ( '+@columnname+' ) 
根据Excel文件导入数据库中的表        SELECT '+@columnname+' 
根据Excel文件导入数据库中的表         from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;IMEX=1;DATABASE='+@fname+''',['+@sheename+'$]) 
根据Excel文件导入数据库中的表        where 1=1  '+@SQLWhere 
根据Excel文件导入数据库中的表end 
根据Excel文件导入数据库中的表else 
根据Excel文件导入数据库中的表begin 
根据Excel文件导入数据库中的表SET @sql=' INSERT INTO '+@TABLENAME+' ( '+@columnname+' ) 
根据Excel文件导入数据库中的表        SELECT '+@columnname+' 
根据Excel文件导入数据库中的表         from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;IMEX=1;DATABASE='+@fname+''',['+@sheename+'$])' 
根据Excel文件导入数据库中的表end 
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表Exec(@sql)   
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表 
根据Excel文件导入数据库中的表GO 

相关文章: