gpt4 book ai didi

sql - 无法在开始 block 内创建架构

转载 作者:行者123 更新时间:2023-12-04 13:20:06 27 4
gpt4 key购买 nike

我完全迷住了。我有以下块:

IF NOT EXISTS(SELECT * FROM sys.schemas WHERE name = 'Test')
BEGIN
CREATE SCHEMA Test;
END;

如果我针对SQL Server 2008运行此命令,则会收到“消息156,级别15,状态1,第3行:关键字'SCHEMA'附近的语法不正确”,但是如果仅运行 CREATE SCHEMA命令,它将起作用。

同样,这可行:
IF NOT EXISTS(SELECT * FROM sys.schemas WHERE name = 'Test')
BEGIN
PRINT 'CREATE GOES HERE';
END;

我究竟做错了什么?

最佳答案

错误消息在这里有点像鲱鱼一样。...执行以下命令,查看“真正的”错误是什么:

SELECT * FROM sys.schemas
CREATE SCHEMA Test

Msg 111, Level 15, State 1, Line 2

'CREATE SCHEMA' must be the first statement in a query batch.



要解决此问题,您可以使用 EXEC函数:
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'Test')
BEGIN
EXEC ('CREATE SCHEMA Test;');
END;

关于sql - 无法在开始 block 内创建架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18697578/

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