Как вставить EXEC, когда данные результата из CLR SP должны быть усечены? - PullRequest
2 голосов
/ 16 мая 2011

Я вставляю набор результатов, возвращенный хранимой процедурой CLR, в табличную переменную.Я получаю сообщение об ошибке: «System.Data.SqlClient.SqlException: строка или двоичные данные будут обрезаны», потому что длина некоторых строк в наборе результатов превышает предел varchar, определенный во временной таблице.Раздражает то, что усечение - это именно то, что мне нужно!
Итак, как мне усечь (строки в) набор результатов из хранимой процедуры после ее вставки?
Я бы не стал менять кодCLR SP.Строки во вставляемых данных имеют произвольную длину.

1 Ответ

2 голосов
/ 16 мая 2011

Я думаю, что я бы сделал столбцы временной таблицы достаточно большими, чтобы принимать данные, а затем обрезал после вставки, например,

UPDATE #YourTempTable
    SET ColumnA = LEFT(ColumnA, 20),
        ColumnB = LEFT(ColumnB, 50)
...