gpt4 book ai didi

sql - 如何让SQL Server忽略检查?

转载 作者:行者123 更新时间:2023-12-01 02:48:48 26 4
gpt4 key购买 nike

我有一个 SQL 脚本,它填充临时列,然后在脚本末尾删除该列。第一次运行时,它工作正常,因为该列存在,然后它被删除。该脚本第二次中断,因为该列不再存在,即使 IF 语句确保它不会再次运行。如何绕过 SQL 检查此字段?

IF EXISTS (SELECT name FROM syscolumns 
WHERE name = 'COLUMN_THAT_NO_LONGER_EXISTS')
BEGIN
INSERT INTO TABLE1
(
COLUMN_THAT_NO_LONGER_EXISTS,
COLUMN_B,
COLUMN_C
)
SELECT 1,2,3 FROM TABLE2

ALTER TABLE TABLE1 DROP COLUMN COLUMN_THAT_NO_LONGER_EXISTS
END

最佳答案

我曾经遇到过类似的问题,并通过将所有查询构建为字符串并使用 Exec() 调用执行它们来解决它。这样查询(选择、插入或其他)在执行之前不会被解析。

虽然它并不漂亮或优雅。

例如

exec('INSERT INTO TABLE1(COLUMN_THAT_NO_LONGER_EXISTS,COLUMN_B,COLUMN_C) SELECT 1,2,3 FROM TABLE2')

关于sql - 如何让SQL Server忽略检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837382/

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