首先,您必须添加硬代码文本字段,然后您必须用您的参数值替换它,例如 FromDate,TillDate,EmpID,CompCode,0,DeptID,DesgId,LocationID,AtnType
DECLARE @startdate varchar(255) = '2019-12-17'
DECLARE @enddate varchar(255) = '2019-12-17'
Set @SQL = 'SELECT * FROM OPENQUERY(' + quotename(@LinkedServer) + ',' + '''' +
'SET FMTONLY OFF; exec [TAP].[dbo].[GetAttendanceList] ' + 'FromDate,TillDate,EmpID,CompCode,0,DeptID,DesgId,LocationID,AtnType,1'')'
您必须替换如下所示的参数值
set @SQL=REPLACE(@SQL,'FromDate',+''''+''''+@startdate+''''+'''')
set @SQL=REPLACE(@SQL,'TillDate',+''''+''''+@enddate+''''+'''')
set @SQL=REPLACE(@SQL,'CompCode',+''''+''''+@CompCode+''''+'''')
set @SQL=REPLACE(@SQL,'AtnType',+''''+''''+''''+'''')
if @EmpID is Null
begin
set @SQL=REPLACE(@SQL,'EmpID','null')
end
if @DeptID is Null
begin
set @SQL=REPLACE(@SQL,'DeptID','null')
end
if @DesgId is Null
begin
set @SQL=REPLACE(@SQL,'DesgId','null')
end
if @LocationID is Null
begin
set @SQL=REPLACE(@SQL,'LocationID','null')
end
print @SQL
exec ( @SQL)