PDA

View Full Version : ثبت خروجی EXEC Sp_Executesql @Str در یک متغیی



shinsinbin@yahoo.com
چهارشنبه 14 آذر 1386, 00:50 صبح
declare @TableName varchar(20)
,@Strt NVarchar(4000)
set @TableName='Person'
------------------------------------------------->

set @Str=N'SELECT Top 1 Serial From ' + @TableName + ' Where Serial > ' + @LastId
EXEC Sp_Executesql @Str

سلام من یک پروسیجر دارم که در آن چنین دستوری وجود دارد
وقتی من به متغییر
@TableName
نام یک جدول رو بدهم در قسمت From دستور سلکتم این نام جدول قرار م یگیرد
حالا می خواهم بدونم چطور خروجی دستور EXEC Sp_Executesql @Str رو تو یک متغییر قرار بدهم
خروجی ای دستور یک عدد است

AminSobati
چهارشنبه 14 آذر 1386, 10:58 صبح
دوست عزیزم،
شما باید خود پارامتر رو از با خاصیت OUTPUT تعریف کنین:



DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @max_title varchar(30);

SET @IntVariable = 197;
SET @SQLString = N'SELECT @max_titleOUT = max(Title)
FROM AdventureWorks.HumanResources.Employee
WHERE ManagerID = @level';
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';

EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title OUTPUT;
SELECT @max_title;

shinsinbin@yahoo.com
پنج شنبه 15 آذر 1386, 21:57 عصر
خیلی ممنون از پاسختون- من تست کردم و جواب گرفتم
اما چطوری من از تابع TOP 1 می تونم تو این حالت استفاده کنم؟

AminSobati
پنج شنبه 15 آذر 1386, 22:05 عصر
select top 1 @x=orderid from orders