Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TSQL:要在现有nvarchar(max)列上使用compress方法吗_Sql_Sql Server_Tsql - Fatal编程技术网

TSQL:要在现有nvarchar(max)列上使用compress方法吗

TSQL:要在现有nvarchar(max)列上使用compress方法吗,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个nvarchar(max)类型的现有数据列,我想在将数据存储在此列之前使用compress函数来减小数据的大小。 从技术上讲,它在下面的查询中工作得很好,我知道对于压缩数据,理想情况下应该使用varbinary(max)类型的列,但我只是想了解如果使用现有的nvarchar(max)存储内置压缩函数数据,可能会出现的问题 查询在nvarchar(max)类型下工作正常: 提前谢谢 Abdul你只是问“为什么”你应该使用varbinary而不是mvarchar(MAX)?我认为这是因为压缩

我有一个nvarchar(max)类型的现有数据列,我想在将数据存储在此列之前使用compress函数来减小数据的大小。 从技术上讲,它在下面的查询中工作得很好,我知道对于压缩数据,理想情况下应该使用varbinary(max)类型的列,但我只是想了解如果使用现有的nvarchar(max)存储内置压缩函数数据,可能会出现的问题

查询在nvarchar(max)类型下工作正常:

提前谢谢
Abdul

你只是问“为什么”你应该使用
varbinary
而不是
mvarchar(MAX)
?我认为这是因为压缩数据(直到解压)在试图显示时只是“无意义”的数据<代码>压缩专门将数据存储在字节数组中。我想您可以将数据存储为
nvarchar
,但最终会得到
N'謟'如果您不解压缩就查询数据。谢谢Larnu,是的,在查询中它会像这样出现,但是对于varbinary类型,我们也有同样的问题。我只是想知道,如果我使用现有的nvarchar(max)列来存储内置压缩函数的varbinary数据,是否还有其他问题?就我个人而言,我会使用正确的varbinary(max)类型,因为如果使用nvarchar来存储二进制数据,只会给后续开发人员带来混乱。你只是问“为什么?”您应该使用
varbinary
而不是
mvarchar(MAX)
?我认为这是因为压缩数据(直到解压)在试图显示时只是“无意义”的数据<代码>压缩
专门将数据存储在字节数组中。我想您可以将数据存储为
nvarchar
,但最终会得到
N'謟'如果您不解压缩就查询数据。谢谢Larnu,是的,在查询中它会像这样出现,但是对于varbinary类型,我们也有同样的问题。我只是想知道,如果我使用现有的nvarchar(max)列来存储内置压缩函数的varbinary数据,是否还有其他问题?就我个人而言,我会使用正确的varbinary(max)类型,因为如果使用nvarchar来存储二进制数据,只会给后续开发人员带来混乱。
create table test (
name nvarchar(MAX)
)

insert into test ( name) values (COMPRESS(cast('hello how are you im fine thanks' as nvarchar(max))))

select cast(DECOMPRESS(cast(name as varbinary(max))) as nvarchar(max)) as name from test