SELECT * FROM OPENXML在sql2000、sql2005中使用的不同
最近有一個SQL Server應用進行庫移植,原本執行在SQL2000下,移植到SQL2005下.
結果出現下列提示:
伺服器: 訊息 492,級別 16,狀態 1,過程 sp_Parse_XML,行 20
在通過 OPENQUERY 和 OPENROWSET 獲得的結果集中不允許有重複的列名。列名 "ST" 是重複的。
模組 'sp_proc_XML' 取決於缺少的物件 'sp_Parse_XML'。仍將建立此模組;但是,只有在該物件存在之後它才能成功執行。
經檢視sp_Parse_XML的程式碼,其中有如下片段:
insert into #tbl
(CxCalcNo,TradeNo,TradeType,TradeOrg,TradeDep,ClsCode,
BrandCode,PageNo,SeNo,PluID,Plucode,PluName,YsTotal,XsDate,
YxTotal,ISUSED,ISCALC,Cardlxcode,Hyno)
select @vs_CxCalcNo,SN,'1',Org,Dep,'','',1,1,iPI,'','',ST,XD,ST,'0','0',HyTp,HyNo
FROM
OPENXML (@Pointer, '/IP',2)--第三個引數2,是以元素為中心的對映
WITH
(
[Org] varchar(10),
[SN] varchar(20),
[XD] datetime,
[HyTp] varchar(4),
[HyNo] varchar(20)
) ,
OPENXML (@Pointer, '//PluR',2)
WITH
(
[Dep] varchar(50),
[iPI] varchar(50),
ST numeric(19,2),
ST numeric(19,2)
)
測試了一下,結果是這樣的:
結果出現下列提示:
伺服器: 訊息 492,級別 16,狀態 1,過程 sp_Parse_XML,行 20
在通過 OPENQUERY 和 OPENROWSET 獲得的結果集中不允許有重複的列名。列名 "ST" 是重複的。
模組 'sp_proc_XML' 取決於缺少的物件 'sp_Parse_XML'。仍將建立此模組;但是,只有在該物件存在之後它才能成功執行。
經檢視sp_Parse_XML的程式碼,其中有如下片段:
insert into #tbl
(CxCalcNo,TradeNo,TradeType,TradeOrg,TradeDep,ClsCode,
BrandCode,PageNo,SeNo,PluID,Plucode,PluName,YsTotal,XsDate,
YxTotal,ISUSED,ISCALC,Cardlxcode,Hyno)
select @vs_CxCalcNo,SN,'1',Org,Dep,'','',1,1,iPI,'','',ST,XD,ST,'0','0',HyTp,HyNo
FROM
OPENXML (@Pointer, '/IP',2)--第三個引數2,是以元素為中心的對映
WITH
(
[Org] varchar(10),
[SN] varchar(20),
[XD] datetime,
[HyTp] varchar(4),
[HyNo] varchar(20)
) ,
OPENXML (@Pointer, '//PluR',2)
WITH
(
[Dep] varchar(50),
[iPI] varchar(50),
ST numeric(19,2),
ST numeric(19,2)
)
測試了一下,結果是這樣的:
在sql2000中SQL
SELECT * FROM OPENXML XMLNAME WITH (fld1,fld2,fld3,fld3)
with引數可以重複指令碼執行不會報錯
在sql2005中SQL
SELECT * FROM OPENXML XMLNAME WITH (fld1,fld2,fld3,fld3)
with引數不可以重複指令碼執行會報錯:
在通過 OPENQUERY 和 OPENROWSET 獲得的結果集中不允許有重複的列名。列名 "fld3" 是重複的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29512902/viewspace-1591170/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Select Top在不同資料庫中的使用用法資料庫
- SQL2005轉SQL2000的方法SQL
- SQL-Hive中的Select From解析SQLHive
- 在select 中的where 中使用indexIndex
- mybatis中insert into ...select ...from dual union all select ... from dual 提示sql命令未結束的問題MyBatisSQL
- SQL2005資料庫指令碼在SQL2000上執行時需注意的地SQL資料庫指令碼
- SQL2000附加SQL2005資料具體方法SQL
- HTML中Select的使用HTML
- SELECT INTO FROM mysql Undeclared variableMySql
- select into from 和 insert into select 的用法和區別
- 四大方面講述SQL2005與SQL2000的改進SQL
- Select from subquery 子查詢
- 關於 mysql 中的 select * from table_a,table_b 的問題MySql
- .NET 8 使用官方OpenXml SDK,替換Word中的文字和圖片XML
- MySql 中 select 使用MySql
- node express 在使用mysql執行SELECT count(*) from xx獲取總數取值格式問題ExpressMySql
- not exists 中from 後面不同寫法帶來的效率區別
- 在 ASP.NET 中實現不同角色的使用者使用不同登入介面的方法ASP.NET
- vue中select的使用以及select設定預設選中Vue
- oracle中建立insert select from 語句實現兩個表中某一個欄位相同統計其他不同欄位的情況Oracle
- 解析MySQL中INSERT INTO SELECT的使用MySql
- SQLite中的SELECT子句使用別名SQLite
- SQLite中的SELECT子句使用表示式SQLite
- 優化select count(*) from t1優化
- 【Openxml】將Openxml的橢圓弧線arcTo轉為Svg的橢圓弧線XMLSVG
- Hibernate中不支援複雜子查詢from (select ……)解決方案
- SQLite中的SELECT子句使用萬用字元SQLite字元
- HTML中Select的使用具體解釋HTML
- 為啥同樣的邏輯在不同前端框架中效果不同前端框架
- 在QTP的Select方法中使用正規表示式QT
- 使用layui框架的select獲取選中的值UI框架
- SQLite中的FROM子句SQLite
- select hang住等待SQL*Net message from ClientSQLclient
- Spring在不同的使用中需要匯入的jar包(轉載未完待續)SpringJAR
- 使用 Postman 的 Environments 和 Tests 簡化在不同環境中的切換步驟Postman
- 在不同的資料庫中解析SQLServer資料資料庫SQLServer
- 在jsavaScript中設定select的某個選項被選中JS
- dotnet OpenXML SDK 新增 CoreFilePropertiesPart 的方法XML