我想一個變量傳遞到OPENROWSET一個SELECT語句,但我一直收到錯誤SQL SELECT * FROM OPENROWSET可變
DECLARE @dDateTIME DATE
SET @dDateTIME = (SELECT SalesDate FROM dbo.SalesDate)
INSERT INTO dbo.tblSales
SELECT * FROM OPENROWSET('MSDASQL', 'dsn=mydsn;uid=myid;pwd=mypwd;',
'SELECT
ID,
TranDate,
ProductID,
CostValue,
SalesValue,
QtySold,
FROM tblSales WHERE TranDate='' + @dDateTIME + ''')
DECLARE @dDateTIME DATE
SET @dDateTIME = (SELECT SalesDate FROM dbo.SalesDate)
DECLARE @SQL NVARCHAR(1024) =
'SELECT
ID,
TranDate,
ProductID,
CostValue,
SalesValue,
QtySold,
FROM tblSales WHERE TranDate=''' + CAST(@dDateTIME AS VARCHAR(64)) + ''''
DECLARE @RunSQL NVARCHAR(max)
SET @RunSQL=
'SELECT * FROM OPENROWSET (''MSDASQL'', ''dsn=mydsn;uid=myid;pwd=mypwd;'',''EXEC @SQL'')'`
應怎樣使用語法適用於@SQL
?
我得到的錯誤是:
的錯誤是:OLE DB提供程序 「MSDASQL」 鏈接服務器 「(空)」 返回了消息「[普及] [ODBC客戶端界面] [LNA] [普適] [ODBC引擎接口]錯誤在謂詞:TRANDATE =「(SELECT @dDateTIME)」「
***什麼***是你得到的錯誤!?!?!?!?!?我們無法閱讀你的屏幕 - 也沒有你的想法....你將不得不**,告訴我們** ...而當你在這裏 - 也請告訴我們***什麼數據庫* **你正在使用(和哪個版本); SQL只是查詢語言 - 不是數據庫產品.... –
我正在使用的數據庫是SQL Server 2008 r2 dsn連接到的數據庫是Pervasive 我知道錯誤是由我使用的語法引起的當通過該變量時。如果我在WHERE語句中輸入datevalue,它就可以正常工作。 (NULL)「返回的消息」[Pervasive] [ODBC客戶端接口] [LNA] [Pervasive] [ODBC引擎接口]謂詞中的錯誤:TranDate ='(SELECT @dDateTIME)'「。 – user2393602