我在AZURE SQL数据库中有一个存储过程。因此需要将记录从#temp表插入到远程表中。 由于xxxx_table在远程数据库中使用了sp_execute_remote。
下面是场景:
Create Procedure SP1 parameter1, Parameter2
As
select Distinct B.column1, B.Column2
into #A
from (Query1
Union
Query2) B
if (select count(1) from #A) > 0
Begin
Exec sp_execute_remote @data_source_name = N'Remotedatabase',
@stmt = N'INSERT INTO [dbo].[xxxx_table]
SELECT DISTINCT
'xxx' AS 'column1',
'xxx as 'Column2',
'xxx' AS 'Column3',
'xxx' AS 'Column4',
'xxx' AS Column4
FROM #A A INNER JOIN table1 on A.Column1 = Table1.Column2'
End
)
获取语法错误如下:
'xxx'附近的语法不正确。
我哪里错了?或者让我知道是否有另一种方法来实现这一目标。
答案 0 :(得分:0)
如果你需要在SQL中动态构建一个字符串,则单引引整个句子,或者使用'一些文本' +'另一个文字'连续句子。如果您必须添加单引号,请使用双引号''
示例:
INSERT INTO SERVER.SCHEMA.TABLE_NAME
SELECT Something
FROM SERVER.SCHEMA.TABLE_NAME
<强>更新强>
如果您的表位于不同的数据库中但在同一服务器中使用:
constructor TMemoria.Create(dest, r1: integer);
begin
inherited Create;
end;