Sql SMSS v17将行插入表的存储过程

Sql SMSS v17将行插入表的存储过程,sql,sql-server,row,sql-insert,Sql,Sql Server,Row,Sql Insert,我有两张桌子:PS_Emp和PS_SAR_General 存储过程应使用PS_Emp表中不存在的任何员工ID更新PS_SAR_General。你能告诉我哪里出了问题吗 这就是我到目前为止所做的: CREATE PROCEDURE [dbo].[SAR_NewEmp_app] @USID AS INSERT INTO dbo.PS_SAR_General ([USID]) VALUES (@USID) FROM dbo.PS_Emp WHERE NOT EXISTS (SELECT PS_Em

我有两张桌子:PS_Emp和PS_SAR_General

存储过程应使用PS_Emp表中不存在的任何员工ID更新PS_SAR_General。你能告诉我哪里出了问题吗

这就是我到目前为止所做的:

CREATE PROCEDURE [dbo].[SAR_NewEmp_app]
@USID
AS
INSERT INTO dbo.PS_SAR_General ([USID])
VALUES (@USID)


FROM dbo.PS_Emp
WHERE NOT EXISTS (SELECT PS_Emp.[USID] FROM PS_Emp WHERE PS_SAR_General 
[USID] = PS_Emp.[USID]) AND PS_Emp.[Status] = 'Active' AND 
PS_Emp.[ECS ICS] = 'ECS' AND PS_Emp.[Employee Class] NOT IN 
('BRWDRESORCE', 'SUBCONTRACT')

对于其他正在寻找答案的人来说,以下是最终的结果:

CREATE PROCEDURE [dbo].[SAR_AddNewEmps_app]
AS
INSERT INTO dbo.PS_SAR_General ([USID], [Status], [ECS ICS], [Employee Class])
  SELECT PS_SAR_General.USID, PS_SAR_General.[Status]
    , PS_SAR_General.[ECS ICS], PS_SAR_General.[Employee Class]
  FROM dbo.PS_SAR_General
  WHERE NOT EXISTS (
    SELECT PS_Emp.[USID]
    FROM PS_Emp
    WHERE PS_SAR_General.[USID] = PS_Emp.[USID]
  ) AND [Status] = 'Active'
  AND [ECS ICS] = 'ECS'
  AND [Employee Class] NOT IN ('BRWDRESORCE', 'SUBCONTRACT') 

此存储过程现在添加新表中不存在但在employee表中存在的行

如果要使用表中的值进行插入,请使用
插入XXX()从
中选择YYY,即不使用
关键字。说明中显示“更新”,但代码中没有任何“更新”语句。您需要使用“UPDATE”语句来更改现有的行。我只是被您的答案弄糊涂了。我对这个很陌生,只是在学习。你能提供一个例子或者告诉我如何修复代码吗?上面的链接是指向官方文档的,该文档展示了如何构造insert语句。这里有大量的例子可以帮助。。。