вы можете записать эту строку в Controller
json.MaxJsonLength = 2147483644;
, вы также можете записать эту строку в web.config
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
`
To be на безопасной стороне, используйте оба.
Вы можете выполнить удаление, используя условие where на основе результата для evid с более чем результатом
select from my_table
where evid in (
select evid, count(*)
from my_table
group by evid
having count(*) > 1
) and roles = 'T'
Я бы создал временную таблицу с различными значениями для evid, place, Officer, Trident и всех других полей, которые должны различаться:
SELECT
MIN(item) AS "item"
, evid
, place
, officer
, trident
, SPACE(100) AS "roles"
INTO #tmp
FROM table
GROUP BY
, evid
, place
, officer
, trident
UPDATE #tmp SET roles = '';
На следующем шаге вы должны агрегировать роли Поскольку ADS не имеет функции STRING_AGG
, вы должны делать это с помощью курсоров, циклов и т. д.
Я уже писал такой код раньше, , посмотрите здесь , например.
Затем вы можете просто удалить всю исходную таблицу и вставить данные из временной таблицы. В идеале я бы сделал эти последние шаги в транзакции.
BEGIN TRANSACTION;
DELETE FROM table;
-- Assuming the table and the temp table have the same exact fields
INSERT INTO table SELECT * FROM #tmp;
END TRANSACTION;