PDA

View Full Version : sp_ExecuteSQL با پارامتر ntext



azam2005
شنبه 17 شهریور 1386, 13:06 عصر
آیا راهی هست که پارامتری از نوع Ntext را با sp_executesql اجرا کرد؟





CREATE PROCEDURE DynamicWord_UPD


@DicName varchar(10)='Fr' ,


@WordNum int ,


@WordName ntext='' ,


@UserName varchar(50) =''



AS
declare @SQLQuery ntext
set @SQLQuery=' UPDATE Dictionary'+@DicName+ ' SET WordName ='+ Cast(@WordName as nvarchar(1000)) +' ,UserName = '+@UserName +'WHERE (WordNum = ' +Cast(@WordNum as varchar(10)) +')'
EXECUTE sp_executesql @SQLQuery
GO

AminSobati
شنبه 17 شهریور 1386, 14:03 عصر
دوست عزیزم اگر در SQL Server 2005 کار میکنید از NVARCHAR MAX استفاده کنین. متاسفانه در 2000 این محدودیت وجود داره.
ضمنا شما برای کدوم قسمت نیاز به ntext دارین؟ طول Query زیاده یا ...

azam2005
یک شنبه 18 شهریور 1386, 16:26 عصر
من با این روش رفتم درست شد
با پارامتر کار کردم





CREATE PROCEDURE DynamicWord_UPD
@DicName varchar(10)='Fr' ,
@WordNum int ,
@WordName ntext='' ,
@UserName Nvarchar(50) =''

AS
declare @SQLQuery Nvarchar(4000)
declare @Param Nvarchar(4000)
set @SQLQuery=N' UPDATE Dictionary'+@DicName+' SET WordName =@StrWordName ,UserName = @StrUserName WHERE (WordNum =@StrWordNum )'
Set @Param= N' @StrWordNum int , @StrWordName Ntext , @StrUserName Nvarchar(50) '
EXECUTE sp_executesql @SQLQuery, @Param , @StrWordName = @WordName , @StrWordNum=@WordNum , @StrUserName=@UserName
GO



@StrWordName را پارامتر تعریف کردم

AminSobati
یک شنبه 18 شهریور 1386, 21:31 عصر
دوست عزیزم این که مشخص بود! محدودیت sp_executesql روی اون SQLQuery وجود داره، نه پارامترهایی که بهش پاس میشه. به همین علت سوال کردم برای کدوم قسمت نیاز به ntext دارین