gpt4 book ai didi

sql - 如何在SQL脚本中创建新列后立即引用它们

转载 作者:行者123 更新时间:2023-12-02 06:40:46 25 4
gpt4 key购买 nike

如何编写我的SQL脚本,以确保新列在创建后在以下行中可见。

这是我的SQL的一般形式:

BEGIN TRANSACTION

if (not exists(select 1 from THIS_TABLE))
BEGIN
ALTER TABLE THIS_TABLE add THIS_COLUMN int
END
COMMIT

BEGIN TRANSACTION

IF (NOT EXISTS (SELECT 1 FROM THIS_TABLE
WHERE THIS_COLUMN = 1))
BEGIN
UPDATE THIS_TABLE SET THIS_COLUMN = 1
END

COMMIT

这是我得到的错误:
Invalid column name 'THIS_COLUMN'. 

在这条线上:
        IF (NOT EXISTS (SELECT 1 FROM THIS_TABLE
WHERE THIS_COLUMN = 1))

最佳答案

必须先创建该列,然后才能解析使用该列的查询。您可以通过使用“go”关键字将update放在不同的批次中来完成此操作:

alter table t1 add c1 int
go
update t1 set c1 = 1

或通过将第二个事务作为动态SQL运行:
alter table t1 add c1 int
exec ('update t1 set c1 = 1')

关于sql - 如何在SQL脚本中创建新列后立即引用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8458568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com