gpt4 book ai didi

sql - 为什么我不能在 SQL Management Studio 的开始/结束 block 中使用 "create schema"?

转载 作者:行者123 更新时间:2023-12-01 17:32:57 27 4
gpt4 key购买 nike

我生成了一个脚本,该脚本为该数据库创建所有用户和架构,当我使用 IF EXISTS 检查包装 CREATE 语句时,我发现它不允许 CREATE SCHEMA 调用在 BEGIN/END block 中运行。它提示这是无效的语法。但我可以自己运行该命令。代码示例如下。我正在使用 SQL Server 2008 和 Management Studio R2。为什么这个语法无效?

--DROP SCHEMA [acme]

IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'acme'))
BEGIN
CREATE SCHEMA [acme] AUTHORIZATION [dbo]
END

最佳答案

架构创建必须是批处理中的唯一语句。解决这个问题的一种方法如下:

IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'acme')) 
BEGIN
EXEC ('CREATE SCHEMA [acme] AUTHORIZATION [dbo]')
END

关于sql - 为什么我不能在 SQL Management Studio 的开始/结束 block 中使用 "create schema"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5748056/

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