Sql server SQL Server 6.5带西班牙语字母的死锁ú;和ü;

Sql server SQL Server 6.5带西班牙语字母的死锁ú;和ü;,sql-server,ado,deadlock,sql-server-6.5,Sql Server,Ado,Deadlock,Sql Server 6.5,我们通过ADO运行SQL6.5,我们遇到了最奇怪的问题 这句话将开始产生死锁 insert clinical_notes ( NOTE_ID, CLIENT, MBR_ID, EPISODE, NOTE_DATE_TIME, NOTE_TEXT, DEI, CARE_MGR, RELATED_EVT_ID, SERIES, EAP_CASE, TRIAGE, CATEGORY, APPOINTMENT, PROVIDER_ID, PROVIDER_NAME ) VALUES ( 'N

我们通过ADO运行SQL6.5,我们遇到了最奇怪的问题

这句话将开始产生死锁

insert clinical_notes ( NOTE_ID, CLIENT, MBR_ID, EPISODE, NOTE_DATE_TIME,  
NOTE_TEXT, DEI, CARE_MGR, RELATED_EVT_ID, SERIES, EAP_CASE, TRIAGE, CATEGORY,  
APPOINTMENT, PROVIDER_ID, PROVIDER_NAME )  
VALUES ( 'NTPR3178042', 'HUMANA/PR', '999999999_001', 'EPPR915347',  
'03-28-2011 11:25', 'We use á, é, í, ó, ú and ü (this is the least one we   
use, but there''s a few words with it, like the city: Mayagüez).', 'APK', 'APK', 
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )
触发器是字符
u
u
。如果它们位于“注释”文本列中。 注:文本是一个文本列。 上有索引

UNC_not_id
NT_CT_MBR_NDX
NT_REL_EVT_NDX
NT_SERIES_NDX
idx_clinical_notes_date_time
nt_ep_idx
注意\u ID是主键

在我们发出这个语句之后,如果发出一个相同的语句,但是有一个新的NOTE_ID值,我们就会收到死锁

如前所述,这仅在注释文本中出现
u
u
时发生

这是一个测试服务器,当发生错误时,通常只有一个会话访问此表

我确信这与角色集之类的东西有关,但就我的一生而言,我无法解决这个问题

  • 列(var)是基于字符的还是基于n(var)字符的?这些值是使用高于255的unicode还是ascii 255或更低(250和252)

  • 尝试将列更改为二进制排序规则,看看这是否有帮助(这可能会说明问题)。我不知道这在SQL 2000中是否有效(尽管我可以在星期一检查),但您可以尝试此方法来查找服务器上可用的排序规则:

    SELECT * FROM ::fn_helpcollations()
    
    拉丁将军宾应该在那里的某个地方

    假设您找到要尝试的排序规则,则可以按如下方式更改排序规则:

    ALTER TABLE TableName ALTER COLUMN ColumnName varchar(8000) NOT NULL COLLATE Collation_Name_Here
    
    为表编写脚本以了解它现在使用的排序规则,这样,如果排序规则不起作用或导致问题,您可以将其设置回原来的排序规则。或者使用备份。:)

  • 另一个注意事项是,如果使用unicode,则文字字符串前确实需要N,例如:

    SELECT N'String'
    

    您使用的是15年前版本的SQL Server?我以为我是最后一个!万一我遗漏了什么。。。你说的“SQL Server 6.5”比这里的一些人还老?这是和你的数据库相同的,不是吗?是的,SQL Server 6.5。如果它能让你感觉更好的话,那它只是在前几周升级到了最新版本。我知道。。。它是通过DOS应用程序访问的。这是它仍然处于6.5版本的主要原因,因为SQL接口需要一些命名管道软件,而这些软件不能与SQL 7.0一起工作,所以它有点被卡住了。我们正在做的一部分工作是将应用程序转换为Windows,一旦它出现,DOS应用程序将被停用,服务器将升级,但在此之前,我们只能继续使用现有的应用程序。这是所有奇怪问题的部分原因。Slim选择了这么旧的版本。如果您使用命名管道,如果一些非ascii文件不包含解释为流控制的内容,我不会感到惊讶。谢谢。我们将试一试,让你知道结果如何。结果是“服务器问题”,这就是我们从技术人员那里得到的所有信息。我想我永远也不会知道那是什么。