gpt4 book ai didi

database - 如何在存储过程中创建具有模式的新数据库?

转载 作者:太空狗 更新时间:2023-10-30 01:51:43 24 4
gpt4 key购买 nike

我想编写一个 TSQL 存储过程来创建一个具有指定名称的数据库,并使用一些模式预先填充它。

所以我使用了很多 EXEC 语句:

EXEC('CREATE TABLE ' + @dbName + '.dbo.MyTable (...)');

等,以及一些 CREATE PROCEDURECREATE FUNCTION 等。但是,问题出在我想创建类型时,因为 CREATE TYPE 语句不能指定了数据库,并且不能在存储过程中使用 USE @dbName

如何在存储过程中创建另一个数据库中的类型?

最佳答案

有些命令不能用作 ssarabando建议,其中有 CREATE SCHEMA,它会抛出 Msg 111当与该技术一起使用时。

解决方法是嵌套动态 SQL block ,如下所示:

exec('use tempdb; exec sp_executesql N''create schema test'' ')

外部 block 除了更改数据库外什么都不做,因此内部 block 在执行时具有正确的上下文。

注意 sp_executesql 的内部参数需要两个单引号。

关于database - 如何在存储过程中创建具有模式的新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806818/

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