1、创建数据存储表
-- sql Server批量创建表
--CREATE DATABASE project_flow_management
--GO
USE project_flow_management
GO
--创建临时表
--CREATE TABLE tempTableInfo(
-- fieldName VARCHAR(100),
-- fieldType VARCHAR(100),
-- fieldComments VARCHAR(100)
--)
--
2、使用游标创建数据库表
DECLARE @tableName VARCHAR(50)='project_close'; --表名
DECLARE @fieldName VARCHAR(100); --字段名
DECLARE @fieldType VARCHAR(100); --字段类型
DECLARE @fieldComments VARCHAR(100); --字段注释
--存储数据表创建语句
DECLARE @sql1Str VARCHAR(max);
--存储注释修改语句
DECLARE @sql2Str VARCHAR(max);
--空格字符
DECLARE @spaceStr VARCHAR(50)=' ';
-- 声明游标
DECLARE cur_createTable CURSOR SCROLL FOR
SELECT * FROM [dbo].[tempTableInfo]
SET @sql1Str=' CREATE TABLE '+@tableName+' (';
SET @sql2Str='';
--打开游标
OPEN cur_createTable ;
FETCH NEXT FROM cur_createTable INTO @fieldName,@fieldType,@fieldComments
WHILE (@@fetch_status=0)
BEGIN
--1、拼接创建表语句
SET @sql1Str+=@spaceStr+'['+@fieldName+']'+@spaceStr+@fieldType+@spaceStr+',';
--2、拼接注释修改语句
SET @sql2Str +='EXEC sys.sp_addextendedproperty @name=''MS_Description'', @level0type=''SCHEMA'',@level0name=''dbo'', @level1type=''TABLE'', @level1name='+@tableName+',@level2type=''COLUMN''';
SET @sql2Str+=' ,@value='''+@fieldComments+''', @level2name='''+@fieldName+''' ; ';
FETCH NEXT FROM cur_createTable INTO @fieldName,@fieldType,@fieldComments
END
--关闭游标
CLOSE cur_createTable;
--释放游标
DEALLOCATE cur_createTable;
SET @sql1Str=SUBSTRING(@sql1Str,0,LEN(@sql1Str)-1);
SET @sql1Str+=' ) '
PRINT @sql1Str;
PRINT @sql2Str;
--执行sql
EXEC(@sql1Str);
EXEC(@sql2Str);
3、个人代码
UPDATE [dbo].[tempTableInfo] SET fieldComments=
(CASE WHEN fieldName='gmt_create' THEN '创建时间'
WHEN fieldName='gmt_modified' THEN '修改时间'
WHEN fieldName='gmt_delete' THEN '删除标记'
WHEN fieldName='delete_status' THEN '删除状态'
WHEN fieldName='data_status' THEN '数据状态'
WHEN fieldName='db_time_stamp' THEN '时间戳'
ELSE fieldComments
END )
WHERE 1=1
如有疑问,可在下方评论或联系 qq: 121813761
未经同意禁止转载