0

我遇到了最近出现的 SQL Server 问题。当 select 语句调用一个空字段(没有 NULL 值但内部没有数据)时,它会产生一个“空格”字符。我一直在使用 2 个 2008 R2 SQL Server 进行测试,其中一个有效,一个无效。Windows 没有更新,PHP 版本相同。这只是随机开始。有任何想法吗?

4

1 回答 1

0

您确实需要查看数据字段中存储的内容。那是第一个开始的地方!

它是否在表定义中定义不为空。

下面的示例设置了一个临时表,最后三个条目看起来像空白。

--
-- Setup sample table
--

-- Sample table
create table #blanks
( 
    blanks_id int identity (1, 1),
    blanks_txt varchar(64)
);
go

-- Add null, space, empty string, hex codes
insert into #blanks (blanks_txt) values (null);
insert into #blanks (blanks_txt) values (space(10));
insert into #blanks (blanks_txt) values ('');
insert into #blanks (blanks_txt) values (char(9));
go

-- Last three entries show as blank
select * from #blanks

使用以下代码段找出该字段中的内容。

-- Code to find out internal data values
select 
    blanks_id,
    datalength(blanks_txt) as size, 
    cast(blanks_txt as varbinary(64)) as buffer 
from #blanks

两个代码执行的输出。

在此处输入图像描述

于 2013-10-10T18:58:48.587 回答