[英]SQL query to delete rows of table in Server form another server
我需要在Server1中编写查询以从server2中的表中删除记录。
我这样尝试过
样品查询
Declare @EmployeeType nvarchar(50) = 'FACT'
DECLARE @SQL nvarchar(max);
DECLARE @ServerName nvarchar(max)='serverName';
DECLARE @DatabaseName nvarchar(max) = 'DBName';
DECLARE @UserID nvarchar(max) ='UserId';
DECLARE @DBPassword nvarchar(max) = 'Password';
BEGIN
SET @SQL = 'select * from Openrowset(
''SQLNCLI'',
''SERVER='+ @ServerName +';database='+ @DatabaseName +';UID='+ @UserID +';PWD='+ @DBPassword +''',
''Delete from TimesheetToCPS where PAYGROUP =''' + @EmployeeType + ''' AND EMPLID IN (SELECT EmplId FROM #tmpEmplid ) AND DUR BETWEEN AND ''''' + CAST(@StartDate AS varchar(11))+ ''''' AND ''''' + CAST(@EndDate AS varchar(11))+ ''''')''
)'
END
print @SQL
EXEC(@SQL)
传递所有参数值。 但不起作用错误-“'FACT'附近的语法不正确”。 有人建议我替代查询。 提前致谢。
错误消息提供了我相信的提示。 如果您打印SQL,您将通过以下方式传递查询:
'从TimesheetToCPS删除,其中PAYGROUP ='FACT'并包含在其中(从#tmpEmplid中选择EmplId)和DUR之间和''Apr 3 2018''和``Apr 3 2018'')'
如您所见,您正在拥有PAYGROUP ='FACT'而不是PAYGROUP =''FACT''
请尝试在此代码段中添加“'''',并将其设为PAYGROUP ='''''+ @EmployeeType +'''''
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.