Когда я пытаюсь изменить параметры сортировки столбца в SQL Сервер, я получаю следующую ошибку:
Неявное преобразование значения varchar в varchar не может быть выполнено, поскольку сопоставление значения не разрешен из-за конфликта сопоставления между «Latin1_General_CS_AI» и «SQL_Latin1_General_CP1_CI_AS» в операторе добавления.
Ниже приведен запрос c, который я пытаюсь выполнить. Я получаю одну и ту же ошибку независимо от того, запускаю ли я запрос вручную или использую GUI.
ALTER TABLE myTable ADD myColumn NVARCHAR(152) COLLATE Latin1_General_CS_AI NULL;
Редактировать: После дальнейших копаний я думаю, что проблема может возникнуть, когда * Сервер 1021 * пытается перестроить один из триггеров на столе. Частично показано ниже ... Я прошу прощения за ужасное форматирование, но я не могу заставить его правильно отформатировать
Редактировать 2: Спасибо за исправление моего форматирования! :) Похоже, что строка внизу раздела кода ниже является источником ошибки.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[payee_audit_update_trigger] on [dbo].[payee] for update as
begin
set nocount on
declare @userId varchar(50), @sqlStatement varchar(255), @appId int, @transactionId int, @insertChangedValues varchar(255), @auditEnabled char(1), @timezoneOffsetMinutes int
exec AuditGetSessionInfo @@rowcount, @userId output, @sqlStatement output, @appId output, @transactionId output, @insertChangedValues output, @auditEnabled output, @timezoneOffsetMinutes output
if (@auditEnabled = 'N')
return
declare @auditDate datetime
set @auditDate = dateadd(MINUTE, @timezoneOffsetMinutes, getutcdate())
insert into audit_log_tx (company_id, application_id, change_date_time, id, table_name, transaction_id, user_id, sql_statement, primary_key_crc, primary_key_values, changed_values)
select inserted.company_id,@appId, @auditDate, dbo.AuditGetRowId(newId()), 'payee', @transactionId, @userId, @sqlStatement, binary_checksum(rtrim(inserted.id)), rtrim(inserted.id),
case when (inserted.company_id = deleted.company_id) or (inserted.company_id is null and deleted.company_id is null) then '' else 'company_id|' + case when deleted.company_id is null then '<null>' else rtrim(deleted.company_id) end + '|' + case when inserted.company_id is null then '<null>' else rtrim(inserted.company_id) end + '^' end + ...
------
case when (inserted.w4_status = deleted.w4_status) or (inserted.w4_status is null and deleted.w4_status is null) then '' else 'w4_status|' + case when deleted.w4_status is null then '<null>' else rtrim(deleted.w4_status) end + '|' + case when inserted.w4_status is null then '<null>' else rtrim(inserted.w4_status) end + '^' end +