插入

时间:2015-04-22 14:19:04

标签: sql sql-server sql-insert

我有一个很大的问题,真的需要你的帮助!

我在表Table A上有一个触发器,它会更新几行,最后我正在制作一个INSERT INTO另一个表Table B,其中包含表Table A中的数据触发它。

一切都很好,只是我在DOCID中有一个INT列Table B,我无法填写INT中的Table A (VERID)列。如果我将NVARCHAR变量插入到列DOCID中,它就可以了。我还可以在NVARCHARTable A中插入INT字段DOCID并插入。但是INT无法进入INT。这是代码:

declare @stichwortid as varchar(50)
select  @stichwortid= isnull(VERID,'') from inserted

INSERT INTO [dbo].[BAUFIN_KOSTENSTELLEN] (DOCID, DWKEYWORD) VALUES(@stichwortid, 'test')

同时尝试将@stiwchwortid声明为INT也不起作用。将其填入第二列DWKEYWORD也没问题。

2 个答案:

答案 0 :(得分:0)

如何使用insert . . . select

INSERT INTO [dbo].[BAUFIN_KOSTENSTELLEN] (DOCID, DWKEYWORD)
    SELECT verid, 'test'
    FROM inserted;

您编写的代码应该有效。尽管你的陈述不同,但最可能的罪魁祸首是两个表中的数据类型不同 - 这可能会导致其他类型的问题。

答案 1 :(得分:0)

如果DOCID是INT列,您可以尝试:

INSERT INTO [dbo].[BAUFIN_KOSTENSTELLEN] (DOCID, DWKEYWORD)
SELECT CAST (verid as INT), 'test'
FROM inserted;