我可以在添加后立即对列运行更新吗?

时间:2016-11-04 16:44:56

标签: sql-server

我试图有条件地添加一个列,然后在一个块中更新它:

IF NOT EXISTS (
    SELECT *
    FROM sys.columns
    WHERE [name] = N'outOf'
        AND [object_id] = object_id(N'woRoute')
) BEGIN
    ALTER TABLE woRoute
    ADD outOf int NULL;

    UPDATE woRoute set outOf = sampling
    WHERE sampling is not null and sampling <> 0;

    UPDATE woRoute set sampling = 1
    WHERE outOf is not null;
END

但是我得到了一个错误&#34; outOf&#34;不是有效列,引用第一个UPDATE查询。

我是从Microsoft SQL Server Management Studio运行的。如果我分开运行每一件,一切正常。但如果我尝试将它们一起运行,我就会收到错误。

如何添加此列,将表中其他列的值复制到其中,然后更新其他列的值,所有这些都在新列尚不存在的情况下?

0 个答案:

没有答案