使用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。希望有正确的语法帮助。
答案 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>
试试这个并告诉我。