Trước tiên, hãy đảm bảo rằng bạn đã chạy tập lệnh tạo trong cơ sở dữ liệu chính xác.
Thứ hai, khi @astander bắt đầu đề cập, bạn đang sử dụng các kết quả hàm không chính xác.
Hàm của bạn trả về một bảng, không phải một giá trị. Bạn sẽ cần thực thi hàm như một phần của các câu lệnh sql, không phải trong quá trình xây dựng các truy vấn đặc biệt. Ví dụ:mã này:
set @[email protected]+'UNION select items from'+ dbo.FN_Split(@p_SourceText,
@p_Delimeter)+' where orderId ='[email protected]+')'
sẽ trở thành:
set @sql = @sql+'UNION select items from dbo.FN_Split(' + @p_SourceText +', ' +
@p_Delimeter + ') where orderId =' + @i + ')'
Thực hiện các thay đổi tương tự ở mọi nơi bạn hiện đang tham chiếu đến hàm.