将列从一个表复制到有条件的表中

问题描述 投票:-2回答:1
ALTER PROCEDURE [dbo].[Timesheet_update]
AS
BEGIN
    DECLARE @sql2 nvarchar(max), @status nvarchar(1)

    SET @sql2 = 'insert into s21022020 (s21_stfno) select m_stfno from master where m_status<>'D''
    EXECUTE (@sql2)
END

EXECUTE Timesheet_update

导致错误:

Msg 207,第16层,状态1,第23行无效的列名“ D”。

m_status列包含数据= D

sql-server append
1个回答
1
投票

我不明白您为什么觉得有必要使它成为动态SQL-只需将语句直接写在存储过程中-像这样:

ALTER PROCEDURE [dbo].[Timesheet_update]
AS
BEGIN
    INSERT INTO s21022020 (s21_stfno) 
        SELECT m_stfno 
        FROM master 
        WHERE m_status <> 'D'
END
© www.soinside.com 2019 - 2024. All rights reserved.