我尝试根据特定密钥从.config文件中将某个值插入SQL Server表。
简化的.config文件如下所示:
<configuration>
<appSettings>
<add key="supportingLocalReview" value="true" />
<add key="localFilingReviewServiceProxyAddress" value="http://web.myflcourtaccess.com:25500/SoapOutgoingRouter.svc/SecureMtom" />
<add key="addReceivedStamp" value="true" />
</appSettings>
<system.serviceModel>
<bindings>
<basicHttpBinding />
</bindings>
<behaviors />
<client>
<endpoint address="http://fca.com:155/RecordMDE/RecordMDE.svc" binding="basicHttpBinding" bindingConfiguration="IntranetMtom" contract="Oasis.LegalXml.CourtFiling" name="RecordMDEServiceNew" />
</client>
</system.serviceModel>
</configuration>
我的初始流程来自于thread,我在其中创建了一个表,并使用OPENROWSET将整个文件插入到表中:
INSERT @ConfigTable
SELECT a.* FROM OPENROWSET(BULK '\\Directory\Configuration\Broward_CMS_Interface_1.config', SINGLE_CLOB ) a
SELECT * FROM @ConfigTable;
我想在配置表中插入的是端点地址&#34; http://fca.com:155/RecordMDE/RecordMDE.svc&#34;如果是key="supportingLocalReview" value="true"
,但我不确定如何实现这一目标。
有什么建议吗?
答案 0 :(得分:1)
如果您以这种方式阅读XML文件,则不会创建表 ...您只需按原样读取XML 。我想你的变量'@ ConfigTable'被声明为表,并允许在列中插入XML。
因此,您的SELECT * FROM @ConfigTable
将返回您的XML - 但不会返回表格...
我将您的XML保存到本地磁盘上的文件中
此代码返回supportingLocalReview
和endpoint address
:
WITH MyConfigFile(AsXML) AS
(
SELECT CAST(BulkColumn AS XML) FROM OPENROWSET(BULK 'f:\test.xml', SINGLE_CLOB ) a
)
SELECT A.B.value('(appSettings/add[@key="supportingLocalReview"]/@value)[1]','bit') AS supportingLocalReview
,A.B.value('(system.serviceModel/client/endpoint/@address)[1]','nvarchar(max)') AS endPointAddress
FROM MyConfigFile
CROSS APPLY MyConfigFile.AsXML.nodes('configuration') AS A(B)
在此模板之后,将其他值放入逐表结果集应该很容易......
你想用这些值做什么应该没问题呢......