CAST / CONVERT数据类型到INT SQL Server查询

时间:2016-08-19 19:41:34

标签: sql sql-server reporting-services sql-server-2014

使用SQL Server 2014,我有一个存储过程和一个SSRS报告,其中包含连接到它的dataSet。 DataSet查询如下所示:

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

SELECT * FROM #Test10

因此,当用户在参数@FIELDID中键入数字时,他会收到错误

  

将数据类型nvachar转换为int。

我需要将此查询中的数据@FIELDID转换为INT。希望有正确的语法帮助。

1 个答案:

答案 0 :(得分:1)

为了构建场景,我在模式中创建了一个表示例.dbo并在模式.shp中创建了过程Report_test1。

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

然后我运行了以下openquery命令,它对我有用..

<input type="text" name="fieldName" list="valueList"/>
<datalist id="valueList">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</datalist>

试试这个并告诉我。