我有以下TSQL脚本:
declare @ValuesXML nvarchar(max), @handle int
set @ValuesXML = '<?xml version="1.0" encoding="utf-16"?>
<Values>
<Value code="TUIRWERTYU"/>
</Values>
'
exec dbo.sp_xml_preparedocument @handle output, @ValuesXML
create table #test(val nvarchar(1))
insert into #test (val)
select code
from openxml( @handle, '/Values/Value', 1)
with (code nvarchar(1))
select * from #test
drop table #test
当我运行它时,我期待有类似于
的错误字符串或二进制数据将被截断。
由于code="TUIRWERTYU"
有10个字符,但我已宣布&#39;在以下语句with (code nvarchar(1))
然而,脚本运行时没有任何错误。 select语句的输出是
Ť
这意味着我的值被截断以适合列声明。
为什么会这样?我找不到任何解释它的文档。