オフィスデータベースがインストールされていない、のSQLServerを運んエクセルExcelのインポートのすべてのバージョンをサポートしていません。

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

今では多くの事業者は、独自のサーバーを展開するのがますます少なくあり、ほとんどの時間は、他のサービスプロバイダのサーバーを雇うが、オフィスをインストールしていないように、データベースサーバなどのトラブルの多くは、そこにあることを、あなたは直接、優れたコンテンツをインポートすることはできません。

今、任意のサーバーの展開の変更を行うことなく、この問題を解決するための若干複雑な方法があり、サービスプロバイダーを探して気にしないでください

最初のステップは:一般的には、開発者の環境は比較的広く、ため、ローカルデータベースにExcelに、およびインポートすることができ、一般的に、これは非常に簡単です

第二段階:生成されたデータXMLデータを導入するように生成されたXMLデータは平文となり、ターゲットは、処理のためにサーバに直接コピーすることができ

select * from 临时数据库 where 条件 order by 排序 for xml raw,root('r'),elements XSINIL

行の各データノードを生成することで、XML生のXMLのために、XSINILはヌルデータを可能にすることである要素を無視することはできません

この方法では、XML、プレーンテキスト形式の多くを得ることができ、および特殊記号のコンテンツがある場合は、ことに留意すべきである、明確な必要性、それ以外の場合は、32文字未満ASCIIコードとして間違ったXML解析を、行くだろう、それは&#X31が生成されます。 ;そのような文字は、自分自身に対処するための異常な解決、必要性の原因となります

第三段階:データのランクに解析されたXML

declare @xml xml
declare @xml xml
set @xml = '复制的xml内容'
declare @handle int,@prepare int
exec @prepare = sp_xml_preparedocument @handle output,@xml
;with t as (
	select * from openxml(@handle,'/r',1)
),t1 as (
	select a.id as rowid,b.localname as columnname,convert(nvarchar(max),c.text) as val 
	from t a 
	left join t as b on b.parentid=a.id 
	left join t as c on c.parentid=b.id
	where a.parentid=0 and a.localname='row'
)
select row_number() over(order by rowid) as nid,*
into #t1
from t1 a
pivot(max(val) for columnname in (字段列表)) p

このようにして、再び、一時テーブル#t1のにXMLデータをインポートし、その後、あなたはそれは、更新または挿入されているかどうか、私たちの業務を継続するかの基準として、他の操作を行うことができます

ここのようなフィールドのリストの第二段階のフィールドのリストです:ID、氏名、性別、状態は...

ああ、その上sqlserver2008を必要とし、2005年のサポートをテストしていません

おすすめ

転載: blog.csdn.net/superwfei/article/details/91947707