Необходимо временно преобразовать текстовое поле в Varchar, чтобы я мог перейти к хранимой процедуре - PullRequest
10 голосов
/ 05 декабря 2010

Я использую базу данных SQL 2000.

Я работаю с базой данных, в которой я не могу изменить типы таблиц или хранимых процедур.Одна из хранимых процедур, которые мне нужно вызвать, ожидает параметр 'text'.Я могу добраться до текстового поля, но я не могу понять, кто должен хранить это в переменной или каким-либо другим способом передать его в хранимую процедуру?

Если я пытаюсь создать текстовую переменную, SQLне позволит мне - если я преобразую его в varchar, я получу только первый символ из текстового поля.

Любые уловки, чтобы обойти это высоко ценится!Спасибо!

1 Ответ

21 голосов
/ 05 декабря 2010

Объявите переменную типа varchar(8000)

declare @v varchar(8000)
SET @v = (SELECT CAST(textcol as varchar(8000)) FROM yourtable WHERE ....)

Очевидно, что она все еще может быть усечена, но не до 1 символа.

...