sql - 通过“while”或过程创建多个表
问题描述
我正在尝试创建一个过程来一次创建多个表,或者使用一段时间或另一个命令。
这是我必须创建的数据库,但我想知道是否有更快的方法通过循环来完成它:
列字段或表中字段的创建是一样的。命名创建的表时会出现问题,因为有几个。
declare @i int = 1
while (@i <= 11)
begin
declare @nameoftable nvarchar(50)
set @nameoftable ='dbo'+ '.' + 'tbl_' + convert(nvarchar, @i) + '000_Capitulo_100'
print @nameoftable
create table @nameoftable
(
cap100ID int primary key not null,
ccdd int not null,
ccpp int not null,
ccdi int not null,
tipoVia nvarchar(20) not null,
nombVia nvarchar(50) not null
)
set @i = @i + 1
end;
这是迄今为止我在 sql server 管理中推进的代码。
解决方案
同意关于拥有多个具有相同结构的表以及它可能导致的问题的评论,但如果你真的需要这样做,你可以使用EXEC
.
declare @i int = 1
while (@i <= 11)
begin
declare @nameoftable nvarchar(50)
declare @sqlCommand nvarchar(255)
set @nameoftable ='dbo'+ '.' + 'tbl_' + convert(nvarchar, @i) + '000_Capitulo_100'
SET @sqlCommand = 'create table ' + @nameoftable +
'(cap100ID int primary key not null,
ccdd int not null,
ccpp int not null,
ccdi int not null,
tipoVia nvarchar(20) not null,
nombVia nvarchar(50) not null)'
EXEC (@sqlCommand)
set @i = @i + 1
end;
推荐阅读
- spring-boot - SpringBoot:上传文件时出错
- jenkins - 詹金斯:从节点上的日志文件位置?
- php - 无法在自定义函数 php 中使用查询
- javascript - moment js:自定义格式字符串到一天的持续时间
- spring - 我们如何使用spring和hibernte执行包含视图和存储过程的.sql脚本
- sql - 检查表值是否包含在我发送的字符串中的 SQL 语句
- php - [php][curl] Curl 的问题 - 保存 www
- windows - Powershell脚本在IE浏览器中打开多个url
- javascript - 如何在 Tampermonkey 中制作脚本以自动单击
- angular - 打印时图表未填满 A4 格式的所有页面。(高图)