要创建多个(几百个)每列数据类型都相同的数据表,有没有一个语句可以在一个库中直接生成,而不需要每个表都手动创建?我用代码
use test1;
declare @circlecount int,@count int;
set @circlecount=10
set @count=0;
while(@count<@circlecount)
begin
create table ** test@count**
set @count=@count+1
end
提示有错,是因为每个库中的数据表不能重名,数据库中又没有数组,不知道该怎么解决?
要批量执行动态SQL
大神,可以贴出来一些代码,或者说得更具体一点吗?比如说什么是动态SQL,批量执行SQL?
exec就能执行
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT;
SET @TableName = 'Orders';
SET @OrderID = 10251;
SET @sql =
'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+
CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'
EXEC(@sql);
针对要建10个表test0,test2,......,test9,我用动态语句建立,
declare @querystring nvarchar(4000)
declare @paramstring nvarchar(200)
declare @input_i int
declare @input_count int
set @querystring='while(@i<@count)
begin
create table '+STUFF('test',4,0,'+cast(@i as varchar(20))+')+'
@i=@i+1
end'
set @paramstring='@i int,@count int'
set @input_i=0
set @input_count=10
exec sp_executesql @querystring,@paramstring,@i=@input_i,@count=@input_count
但是提示:消息 102,级别 15,状态 1,第 3 行
'+' 附近有语法错误。
还请大神解答一二
直接表结构做复制就可以了。