插入sql server中的sql_variant列

时间:2010-03-08 18:36:16

标签: sql sql-server

我正在尝试从xml列向sql server中的sql_variant列插入一个值

离。

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

我收到了这个错误,

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

任何人对此都有任何线索,如何在sql_variant中轻松插入值?

2 个答案:

答案 0 :(得分:6)

sql_variant无法存储nvarchar(max)

sql_variant (Transact-SQL)

该链接表示使用sql_variant:

无法存储以下类型的值
varchar(max)
varbinary(max)
nvarchar(max)
xml
text
ntext
image
timestamp
sql_variant
geography
hierarchyid
geometry
User-defined types

答案 1 :(得分:2)

Sql_variant支持字符串。对于SQL Server 2008 R2:

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

我发现的文档在这些阈值上有点模糊。