2016-08-19 61 views
2

使用SQL Server 2014,我有存儲過程和一個SSRS報告以及連接到它的dataSet。集查詢看起來像:CAST/CONVERT數據類型爲INT SQL Server查詢

SELECT * 
INTO #Test10 
FROM OPENQUERY([SERVER1], 'exec [test_1].shp.Report_test1 @FIELDID = [@FIELDID]') 

SELECT * FROM #Test10 

因此,當用戶類型數量參數@FIELDID,他得到一個錯誤

轉換數據類型nvachar爲int。

我需要將此查詢中的數據@FIELDID轉換爲INT。希望得到正確的語法幫助。

+0

爲什麼不把它作爲你的SSRS參數中的int? – scsimon

+0

在報告參數屬性中將數據類型更改爲整數不會有幫助,具有與我上面編寫的相同的錯誤 – Dmitry

回答

1

爲了構建場景,我在架構.dbo中創建了一個表格樣本,並在架構.shp中創建了過程Report_test1。

CREATE TABLE dbo.[sample] 
(ID INT, 
Name VARCHAR(50)) 
GO 

INSERT INTO dbo.sample 
VALUES (1,'A'), (2,'B'), (2,'C'), (1,'D'), (3,'A'), (1,'F') 
GO 

CREATE PROCEDURE shp.Report_test1 
@FIELDID int 
AS 
BEGIN 

    SELECT * 
    FROM [Sample] 
    WHERE [email protected] 

END 
GO 

然後我跑到下面OPENQUERY命令和它的作品對我..

DECLARE @Query NVARCHAR(2000) 
DECLARE @FIELDID INT=1 

SET @Query = N'SELECT * INTO dbo.Test1 FROM OPENQUERY([LAP], ''exec [MyLab].shp.Report_test1 @FIELDID = '+Cast(@FIELDID As Varchar(50))+ ' '')' 
EXEC (@Query) 

SELECT * FROM dbo.Test1 

嘗試像這樣,讓我知道。

+0

mssql說 - 無法找到存儲過程「」。 – Dmitry

+0

你是否提到過你的服務器名稱? –

+0

OPENQUERY([服務器] - 如果你正在談論這部分查詢,是的,我做了 – Dmitry