我有一个字段来存储一些数据,该字段声明为varchar(max)
. 据我所知,这应该是存储2^31 - 1
字符,但是当我输入超过 8000 个字符的内容时,它会切断其余部分。
我已经验证所有数据都包含在我的更新语句中,并且查询在其他地方看起来都很好,但是当我选择数据时,它已被切断。
当我在我的网站上显示数据以及使用 SSMS 到select content from table
.
select DATALENGTH (content) from table
返回 8000。
我使用这个设置数据:update table set content = 'my long content' where id = 1
。内容确实有很多 HTML,但我看不出这会导致问题。我唯一能看到的是我正在做的事情是替换所有内容"
,''
因为这是用户输入的内容(不记得我现在为什么这样做了)。
我确实通过删除内容中的所有单引号设法使内容正确输入,所以我认为我的数据而不是数据库发生了一些奇怪的事情。
我应该对查询做一些特别的事情来使用一个varchar(max)
字段吗?
使用:SQL Server 2008 (10.50) 64 位。
Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
当我的一个网站忙碌时,我会随机收到此错误。我大致知道它发生在哪些表集上,但根据我使用其他程序的经验,我通常会在发生死锁的地方返回 SQL。是否有我应该打开的标志来允许这种情况发生?
我将尝试将死锁本身作为一个单独的问题进行调试,因为这是我目前的主要问题。
我使用的是 SQL Server 2008 标准版。