基于Like" row_value"将数据从一个表读取到另一个表。

时间:2014-11-03 15:01:27

标签: sql sql-server syntax

我正在尝试将t_code从表A填充到表B,其中表A" name"比如表B" name",但我在使代码工作时遇到了一些问题。

语法有什么问题?我是使用游标的初学者。

DECLARE c CURSOR READ_ONLY FAST_FORWARD FOR
    SELECT name
    FROM [GA_EMPLOYEE2]

DECLARE @id VARCHAR(255)

-- Open the cursor
OPEN c

FETCH NEXT FROM c INTO @id
WHILE (@@FETCH_STATUS = 0)
BEGIN
    INSERT INTO [GA].[dbo].[GA_EMPLOYEE2].[t_code]
    SELECT  [GA].[dbo].[GA_EMPLOYEE1].[t_code]
    WHERE [GA].[dbo].[GA_EMPLOYEE1].[name] LIKE '%@id%'



    FETCH NEXT FROM c INTO @id
END

-- Close and deallocate the cursor
CLOSE c
DEALLOCATE c

1 个答案:

答案 0 :(得分:2)

所以...看起来你正在抓取EMPLOYEE2中的名单列表,然后对于列表中EMPLOYEE1所在的name中的每个tcode,你要插入EMPLOYEE1 tcode加入EMPLOYEE2

没有必要使用所有这些CURSOR rigamaroo。这是一个非常基本的INSERT语句,其中包含INNER JOIN

INSERT INTO [GA].[dbo].[GA_EMPLOYEE2].[t_code]
SELECT  [GA].[dbo].[GA_EMPLOYEE1].[t_code]
FROM [GA].[dbo].[GA_EMPLOYEE1]
    INNER JOIN [GA_EMPLOYEE2] ON
    [GA].[dbo].[GA_EMPLOYEE1].[name] LIKE [GA_EMPLOYEE2].[name]

虽然我觉得你的代码没有充分描述你的意图。也许您希望UPDATE EMPLOYEE2NAME tcode条记录在匹配的EMPLOYEE1表中找到UPDATE [GA].[dbo].[GA_EMPLOYEE2] SET [GA].[dbo].[GA_EMPLOYEE2].[t_code] = [GA].[dbo].[GA_EMPLOYEE1].[t_code] FROM [GA].[dbo].[GA_EMPLOYEE2] INNER JOIN [GA].[dbo].[GA_EMPLOYEE1] ON [GA].[dbo].[GA_EMPLOYEE2].[name] = [GA].[dbo].[GA_EMPLOYEE1].[name]; 。如果是,那么:

{{1}}