繁体   English   中英

SQL查询以删除服务器中另一台服务器中的表行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM