اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی
سلام لطفا راهنمایی کنید چگونه می توانم یک دستور Select را که به صورت رشته است با دستور exec اجرا کنم و خروجی بگیرم مانند کد زیر:
Declare @Param as nvarchar
Set @param='Ware'
Exec sp-executsql 'Select ID From' + @Param
می خواهم وقتی این دستورات را درون یک Function نوشتم هنگامی که آن را صدا می زنم خروجی فیلد ID جدول Ware باشد
فعلا که وقتی دستور exec را در تابع می نویسم و بعد تابع را صدا می زنم خطا می دهد که نمی تواند این کار را انجام دهد لطفا راهنمایی کنید
نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی
فکر کنم مشکلش یک Space باشد. بعد از الحاق پارامتر @Param کلمه From به Ware می چسبد.
نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی
سلام.
به جز موردی که آقای عمرانی فرمودند باید پیغام خطا رو اینجا قرار بدید تا بشه دقیق راهنمایی کرد.
الان دستور sp_executesql شما هم اشتباه است.چون به جای '_' از '-' استفاده کردید.
نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی
سلام دوست من
شما اگه اسم جدولتون مشخصه که دیگه متغیر نمی خواهد، ولی اگر بخواهید اسم جدول را به عنوان پارامتر ورودی ارسال کنید به این صورت عمل کنید:
CREATE PROCEDURE [dbo].[YourSPName](@TabelName NVARCHAR(128))
AS
BEGIN
DECLARE @SelectString NVARCHAR(MAX)
Set @SelectString='SELECT * FROM '+ @TabelName)
EXEC (@SelectString) / EXECUTE SP_EXECUTESQL @SelectString
END
نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی
سلام
درون Function نمی توان Dynamic SQL بکار برد
نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی
اگر تعداد جداولی که ممکنه به عنوان متغیر گرفته بشن خیلی محدود باشه می تونید از Dynamic بودن کوئری صرف نظر کنید. به این شکل:
SELECT ID FROM
(SELECT ID, 'Ware' AS TableName FROM Ware
UNION
SELECT ID, 'Others' FROM Other) AS D
WHERE TableName = @parm;
نقل قول: اجرا کردن دستوری به صورت رشته با فرمان exec و برگرداندن خروجی
سلام از جواب همه دوستان ممنون حق با جناب askaffash بود جواب اصلی رو پیدا کردم سر فرصت می ذارم دوستان استفاده کنند