小编Tom*_*ter的帖子

无法插入新创建的列

我有一个简单的测试表,如下所示:

CREATE TABLE MyTable (x INT);
Run Code Online (Sandbox Code Playgroud)

在事务中,我尝试添加一列,然后插入到新创建的列中:

BEGIN TRANSACTION;
    PRINT 'Adding column, ''SupplementalDividends'', to MyTable table.';

    ALTER TABLE MyTable
        ADD SupplementalDividends DECIMAL(18,6);

    PRINT 'Column added successfully....';

    PRINT 'Ready to INSERT into MyTable ...';

    INSERT INTO MyTable (x, SupplementalDividends)
        VALUES (1, 3.2);

    PRINT '**** CHANGES COMPLETE -- COMMITTING.';
COMMIT TRANSACTION;
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,问题是一条错误消息:

Invalid column name 'SupplementalDividends'.
Run Code Online (Sandbox Code Playgroud)

为什么这会导致错误?如果我在交易之外的不同批次中添加该列,它将起作用。我的问题是我在事务中添加列。为什么会出错?

sql-server t-sql sql-server-2008-r2

8
推荐指数
2
解决办法
3663
查看次数

标签 统计

sql-server ×1

sql-server-2008-r2 ×1

t-sql ×1