2

我想做类似的事情

use mydb
go

begin tran
merge dbo.aTestTarget as T
using dbo.aTestSource as S
on (T.link = S.link)
when not matched by target and (s.code like '*I%') then
      -- is there a way to do this sort of thing?
      insert (T.*) values (S.*)

when matched and ...
rollback tran
go

有没有办法在不定义每一列的情况下做到这一点?我有许多包含 20 到 50 个字段的表。

4

1 回答 1

1

不,那里没有。无论如何,使用 * 语法是一种不好的做法,因为它会导致难以维护的脆弱代码。

但是,在 SSMS 中,您可以将表下的 Columns 文件夹拖放到编辑器中,以获取该表所有列的逗号分隔列表。这使得打字更容易一些。:)

于 2013-01-09T02:52:00.230 回答