PDA

View Full Version : OPENROWSET با کوئری متغییر



masoode
سه شنبه 17 آبان 1401, 12:12 عصر
سلام
من میخواهم پارامتر آخر دستور OPENROWSET به صورت متغییر باشد. مثل زیر:
SELECT *
FROM
OPENROWSET('SQLNCLI', 'DRIVER={SQL Server};SERVER=MyServer\cut;DATABASE=CUT1401;UID=s a;pwd=',@SQL)
یا
SELECT *
FROM
OPENROWSET('SQLNCLI', 'DRIVER={SQL Server};SERVER=MyServer\cut;DATABASE=CUT1401;UID=s a;pwd=','SELECT * FROM tblCustomers WHERE Id='+@Id)
ولی با خطای Incorrect syntax near '@SQL'. مواجه میشوم. ظاهراً باید مستقیم در آن پارامتر مقدار داد!!!!
آیا راهی برای این کار سراغ دارید؟

ROSTAM2
سه شنبه 17 آبان 1401, 15:00 عصر
سلام.

SqlCommand.Parameters (https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.parameters?view=d otnet-plat-ext-7.0)

pe32_64
جمعه 23 دی 1401, 19:37 عصر
سلام
من میخواهم پارامتر آخر دستور OPENROWSET به صورت متغییر باشد. مثل زیر:
SELECT *
FROM
OPENROWSET('SQLNCLI', 'DRIVER={SQL Server};SERVER=MyServer\cut;DATABASE=CUT1401;UID=s a;pwd=',@SQL)
یا
SELECT *
FROM
OPENROWSET('SQLNCLI', 'DRIVER={SQL Server};SERVER=MyServer\cut;DATABASE=CUT1401;UID=s a;pwd=','SELECT * FROM tblCustomers WHERE Id='+@Id)
ولی با خطای Incorrect syntax near '@SQL'. مواجه میشوم. ظاهراً باید مستقیم در آن پارامتر مقدار داد!!!!
آیا راهی برای این کار سراغ دارید؟
sp_executesql ---- دینامیک sql