我正在使用SQL Server 2012,我需要通过执行带有动态参数值的存储过程将结果发送到temp-table。
下面我展示了我的代码,当我执行代码时出现错误,因此在openrowset
执行存储过程或类似的事情时,是否可以使用动态参数进行输出?
SET @sql = N'SELECT * INTO #TempStamp_Status
FROM OPENROWSET(''SQLNCLI'',
''Admin-SERVER\SQLEXPRESS'' ; ''sa'' ; ''123456''
''SET NOCOUNT ON;SET FMTONLY OFF;exec
RDS_DS.dbo.Qry_GetParticipationDetails ' + cast( @ResidentId AS
NVARCHAR(10)) + ',''' +CAST(@StartDate AS NVARCHAR(100)) +''','''
+CAST(@EndDate AS NVARCHAR(100)) +''')''';
当我执行此SQL查询时,出现此错误:
Msg 102,Level 15,State 1,Line 5
' SET NOCOUNT ON附近语法不正确; SET FMTONLY OFF; exec RDS_DS.dbo.Qry_GetParticipationDetails 52,'
提前致谢
答案 0 :(得分:2)
缺少报价。你能试试吗?
SET @sql = N'SELECT * INTO #TempStamp_Status
FROM OPENROWSET(''SQLNCLI'',
''Admin-SERVER\SQLEXPRESS'' ; ''sa'' ; ''123456'',
''SET NOCOUNT ON;SET FMTONLY OFF;exec
RDS_DS.dbo.Qry_GetParticipationDetails ' + cast( @ResidentId AS
NVARCHAR(10)) + ',''''' +CAST(@StartDate AS NVARCHAR(100)) +''''','''''
+CAST(@EndDate AS NVARCHAR(100)) +''''''')';