DECLARE @str VARCHAR (MAX);
SELECT @str = COALESCE(@str + CHAR(10), '') +
'EXECUTE CreateDeno ' + CAST(ID AS VARCHAR)
FROM GL_To_Batch_Details
WHERE TYPE = 'C' AND
Deno_ID IS NULL;
--PRINT @str;--SELECT @str;
**EXEC(@str);**
EDITEDT-SQL VARCHAR (MAX) rút gọn
Liệu EXECUTE
tuyên bố cắt ngắn chuỗi đến 8.000 ký tự như PRINT
? Làm thế nào tôi có thể thực hiện một câu lệnh SQL động có hơn 8.000 ký tự?
Mọi đề xuất sẽ được đánh giá cao.
Tôi nghĩ rằng bạn đang bối rối, bạn không thể 'PRINT' hơn 8000 ký tự, điều đó không có nghĩa rằng @str đang được cắt ngắn – Lamak
Tôi đã chỉnh sửa câu hỏi để được cụ thể hơn về vấn đề này. Thực ra khi EXECUTE tạo ra lỗi, tôi đã sử dụng PRINT để xem T-SQL động được tạo ra như thế nào. Trong cả hai trường hợp, giá trị nvarchar (MAX) đã bị cắt ngắn. Bất kỳ ý tưởng? –