Sql server 如何在SQL Server中实现CAST(VARBINARY作为NVARCHAR)?
我特别指的是如何处理存储过程输入参数。它只是改变了SQLServer解释数据的方式,还是要求SQLServer复制数据Sql server 如何在SQL Server中实现CAST(VARBINARY作为NVARCHAR)?,sql-server,casting,Sql Server,Casting,我特别指的是如何处理存储过程输入参数。它只是改变了SQLServer解释数据的方式,还是要求SQLServer复制数据 谢谢 每个NVARCHAR字符占用2字节,因此SQL Server将NVARCHAR大小填充到最接近的较大偶数整数: WITH q AS ( SELECT CAST('qqq' AS VARBINARY) vb ) SELECT DATALENGTH(CAST(vb AS NVARCHAR(20))) FROM q
谢谢 每个
NVARCHAR
字符占用2
字节,因此SQL Server
将NVARCHAR
大小填充到最接近的较大偶数整数:
WITH q AS
(
SELECT CAST('qqq' AS VARBINARY) vb
)
SELECT DATALENGTH(CAST(vb AS NVARCHAR(20)))
FROM q
---
4
“数据副本”是什么意思?这取决于执行计划
SQL Server
即使不进行类型转换,也可以复制整个表(例如,在即时假脱机中)。如果将@variableA分配给@variableB,则必须生成与转换相关的副本
如果在查询中使用@变量,则情况会更加复杂,复制是否发生取决于强制转换的上下文。对不起,我应该澄清一下,我特别指的是存储过程参数。我已经更新了问题。如果是文本,为什么存储为VARBINARY?请参阅我对该问题的回答: