简体   繁体   English

插入sql server中的sql_variant列

[英]Insert into sql_variant column in sql server

I am trying to insert a value to sql_variant column in sql server from an xml column 我试图从xml列向sql server中的sql_variant列插入一个值

ex. 恩。

 INSERT INTO 
  [dbo].[TestColumn]
 (
  Id,
  Attribute,
  AttributeValue
 )
 SELECT 
  Id, 
  'TestName', 
  CAST(CustomColumns.query('//TestName') AS nVarchar(MAX))
 FROM 
  [dbo].[Clmnt] (NOLOCK) 

I got this error, 我收到了这个错误,

Operand type clash: nvarchar(max) is incompatible with sql_variant

Anybody has any clue on this, How do I easily insert a value in sql_variant? 任何人对此有任何线索,如何在sql_variant中轻松插入值?

sql_variant can not store nvarchar(max) sql_variant无法存储nvarchar(max)

sql_variant (Transact-SQL) sql_variant(Transact-SQL)

That link says that the following the types of values cannot be stored by using sql_variant: 该链接表示使用sql_variant无法存储以下类型的值:

varchar(max)
varbinary(max)
nvarchar(max)
xml
text
ntext
image
timestamp
sql_variant
geography
hierarchyid
geometry
User-defined types

Sql_variant does support strings. Sql_variant支持字符串。 For SQL Server 2008 R2: 对于SQL Server 2008 R2:

nvarchar(4000) but not nvarchar(max).
varchar(8000) but not varchar(max)

The docs I had found were a bit vague on these thresholds. 我发现的文档在这些阈值上有点模糊。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM