Batch build tables with the same table structure with indexes

declare @ii int   
set @ii = 0
while @ii <= 50
	begin  
	declare @strSql varchar(500)  ,@str varchar(500)  ,@strIndexSql varchar(500)  
	
	set @str = @ii
	set @strSql = 'create table dbo.test_'+ @str + '(logGid uniqueidentifier NOT NULL,
					user_gid uniqueidentifier NOT NULL,
					create_time datetime NOT NULL,
					data_version nvarchar(64) NOT NULL,
					rule_id varchar(64) NOT NULL,
					rule_value decimal(30, 4) NOT NULL,
					rule_v nvarchar(1024) NULL,
					remark nvarchar(1024) NULL,
					IDCardNO varchar(32) NOT NULL DEFAULT ('''+ '''),
					share_type tinyint NOT NULL DEFAULT (0),
					channel varchar(32) NOT NULL DEFAULT ('''+'''))'  
	execute(@strSql)  
	set @strIndexSql = '
		CREATE UNIQUE NONCLUSTERED INDEX ix_test_'+@str +'_usergid_ruleid ON dbo.test_'+@str +'
		(
			user_gid ASC,
			rule_id ASC
		) '
		execute(@strIndexSql)  

		set @strIndexSql = '
		CREATE NONCLUSTERED INDEX ix_test_'+@str +'_create_time ON dbo.test_'+@str +'
		(
			create_time ASC
		) '
		execute(@strIndexSql)  
		Set @ii = @ii+1  
end  

  

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326163620&siteId=291194637