【发布时间】:2012-01-10 16:34:54
【问题描述】:
我想编写一个 TSQL 存储过程,它创建一个具有指定名称的数据库,并使用一些架构预填充它。
所以我使用了很多 EXEC 语句:
EXEC('CREATE TABLE ' + @dbName + '.dbo.MyTable (...)');
等,还有一些CREATE PROCEDURE,CREATE FUNCTION等。但是,问题来自于我想创建一个类型,因为CREATE TYPE语句不能指定数据库,你不能有@ 987654324@在存储过程中。
如何在存储过程中在另一个数据库中创建类型?
【问题讨论】:
-
为什么要在存储过程中创建数据库和模式???这似乎有点奇怪 - 通常,DML 语句应该不从存储的过程中执行 - 你执行一次来设置你的环境,然后完成它..
-
我想根据应用程序的输入创建任意数量的数据库(每个客户一个数据库)
-
创建数据库备份,然后每次你想添加一个新的逻辑名称和文件名恢复它。
-
我个人会找到另一种配置数据库及其架构的方法——类似于生成(并可能执行)必要 T-SQL 脚本的工具——但我不会在存储过程中执行此操作。 ..
标签: database tsql stored-procedures