2015-04-22 3 views
-1

У меня есть большая проблема и очень нужна ваша помощь!INSERT INTO Integer после вставки

У меня есть триггер на столе Table A, который обновляет несколько строк, и в конце концов я, сделав INSERT INTO другой таблицы Table B с данными из таблицы Table A, где есть курок на нем.

Все хорошо, только то, что у меня есть столбец INT DOCID в Table B который я не могу заполнить с INT колонны из Table A (VERID). Если я ввожу переменную NVARCHAR в столбец DOCID, она работает. Я также могу взять поле NVARCHAR vom Table A и вставить в колонку INTDOCID. Но нет никакого способа для 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 также не представляет проблемы.

+0

Что он т проблемы вы столкнулись? –

+1

Я не вижу переменную INT или поле. Если DOCID является INT, почему вы определяете @stichwortid как varchar()? – ericpap

+0

Я также попытался определить @stichwortid как INT раньше, подумал, что этот способ поможет ... – helpling

ответ

0

Как насчет использования insert . . . select?

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

Ваш код, как написано, должен работать. Несмотря на ваше заявление в противном случае, наиболее вероятным виновником является то, что тип данных отличается в двух таблицах, что может вызвать другие проблемы.

+0

Спасибо. Это не сработало. Кроме того, предложение ericpap не работает. Если я вставляю из источника столбец, который является nvarchar, он работает! Нет проблем! У меня есть только проблема, что источник и столбец, которые я хочу заполнить, являются int! Это единственная причина, по которой я вижу ... – helpling

+0

Я также могу заполнить источник int в поле nvarchar, но не в поле int. – helpling

0

Если DOCID является колонки INT, вы можете попробовать:

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

Спасибо. Это не сработало. Оба источника и columng, которые я хочу заполнить, - INT. Если я вставляю из источника столбец, который является nvarchar, он работает! Нет проблем! У меня есть только проблема, что источник и столбец, которые я хочу заполнить, являются int! Это единственная причина, по которой я вижу ... – helpling

+0

Я также могу заполнить источник int в поле nvarchar, но не в поле int. – helpling

+0

Какое поле является веридой и DocID? Может быть, существуют некоторые ограничения на значения столбца docID? Какая ошибка вы получаете? – ericpap