我從我的ASP.NET應用程序調用存儲過程。存儲過程需要一個參數。我從我的WEB窗體提供的值太大,以至於沒有完全加載到sql server的變量中。我的sql服務器參數的數據類型是nvarchar(max),我的ASP.NET應用程序中的數據類型是字符串。 存儲過程爲SQL服務器參數大小超載
Create procedure p_getProducts
@nm_emp nvarchar(max)
AS
BEGIN
select * from tblProduct where nm_user in(convert(nvarchar(max),@nm_emp));
END
請告訴我哪SQL Server數據類型,我應該用它來解決這個問題。
謝謝。
你爲什麼要將變量轉換成相同的數據類型? – 2013-03-02 13:30:32
這裏有一個邏輯問題。以這種方式傳遞的參數不能將其自身擴展爲IN值的列表。你的查詢將永遠不會工作。 (至少在@nm_emp類似'joe','mark','steve'的情況下不行) – Steve 2013-03-02 13:37:46
@steve,是的,我在c#中格式化了像'joe','mark','steve'這樣的值並保存變量並將其傳遞給存儲過程。他們工作得很好,但當參數文本的大小增加時,它會產生問題 – Candy 2013-03-02 13:42:07