Seven77yixuan

【Mysql】生成Sqlserver创建表语句

sql:

DROP VIEW
IF EXISTS `V_TableToSqlserverText`;

CREATE ALGORITHM = UNDEFINED 
DEFINER = `root`@`localhost` 
SQL SECURITY DEFINER 
VIEW `V_TableToSqlserverText` AS (
  SELECT TABLE_NAME tablename,rownum,sqltext
	FROM(
	SELECT TABLE_NAME,0 rownum,sqltext FROM (
		SELECT c.TABLE_NAME,CONCAT(\'if object_id(\'\'\',c.TABLE_NAME,\'\'\',\'\'U\'\') is not null
drop table [\',c.TABLE_NAME,\'];
CREATE TABLE \',c.TABLE_NAME,\' (\') sqltext
		FROM information_schema.`TABLES` c 
		WHERE c.TABLE_SCHEMA=\'sevenblog\'
		AND c.TABLE_TYPE =\'BASE TABLE\'
	) startSql
	UNION ALL
	SELECT c.TABLE_NAME,c.ORDINAL_POSITION rownum,
		CONCAT(\'	\',
			CASE
			WHEN c.ORDINAL_POSITION >1 THEN \',\'
			ELSE \'\' 
			END,
			\'[\',
			c.COLUMN_NAME,
			\'] \',
			(
			CASE 
				WHEN c.COLUMN_KEY = \'PRI\' THEN \'uniqueidentifier\'
				WHEN c.DATA_TYPE = \'varchar\' THEN CONCAT(\'n\',c.DATA_TYPE,\'(\',c.CHARACTER_MAXIMUM_LENGTH,\')\')
				ELSE c.DATA_TYPE
			END
			),
			\' \',
			CASE 
			WHEN c.IS_NULLABLE = \'NO\' THEN \'not null\'
			ELSE \'null\'
			END,
			\' \',
			(
			CASE 
				WHEN LENGTH(c.COLUMN_DEFAULT)>0 THEN CONCAT(\'default \',\'(\',
					(
						CASE 
						WHEN c.COLUMN_DEFAULT = \'CURRENT_TIMESTAMP\' THEN \'getdate()\' 
						WHEN c.DATA_TYPE =\'varchar\' THEN CONCAT(\'\'\'\',c.COLUMN_DEFAULT,\'\'\'\')
						ELSE CONCAT(c.COLUMN_DEFAULT)
						END
					),\')\')
				ELSE \'\'
			END
			),
			CASE 
			WHEN c.COLUMN_KEY = \'PRI\' THEN \'primary key\'
			ELSE \'\'
			END
		) sqltext
		FROM information_schema.columns c 
		JOIN information_schema.`TABLES` b ON c.TABLE_NAME = b.TABLE_NAME
		WHERE b.TABLE_SCHEMA=\'sevenblog\'
		AND b.TABLE_TYPE =\'BASE TABLE\'
		UNION ALL
		SELECT TABLE_NAME,100 rownum,sqltext  from (
			SELECT c.TABLE_NAME,CONCAT(\');\') sqltext
			FROM information_schema.`TABLES` c 
			WHERE c.TABLE_SCHEMA=\'sevenblog\'
			AND c.TABLE_TYPE =\'BASE TABLE\'
		) endStr
	) tablesql
	ORDER BY tablesql.TABLE_NAME,tablesql.rownum
);

  

 结果如下

生成sql

if object_id(\'login_log\',\'U\') is not null
drop table [login_log];
CREATE TABLE login_log (
	[Id] uniqueidentifier not null primary key
	,[UserID] int not null 
	,[Ipaddress] nvarchar(100) not null 
	,[Ipproxy] nvarchar(100) not null 
	,[System] nvarchar(100) not null default (\' \')
	,[Option] int null 
	,[EnumDataEntityStatus] int not null default (0)
	,[CreateTime] datetime null default (getdate())
	,[LastUpdateTime] datetime null default (getdate())
	,[CreateOperator] nvarchar(50) null 
	,[LastUpdateOperator] nvarchar(50) null 
);
if object_id(\'users\',\'U\') is not null
drop table [users];
CREATE TABLE users (
	[Id] uniqueidentifier not null primary key
	,[Account] nvarchar(255) not null 
	,[Password] nvarchar(255) not null 
	,[Name] nvarchar(255) not null default (\' \')
	,[Sex] int null 
	,[EnumDataEntityStatus] int not null default (0)
	,[BizCode] nvarchar(255) not null default (\' \')
	,[TypeId] int not null default (0)
	,[TypeName] nvarchar(30) null 
	,[CreateTime] datetime null default (getdate())
	,[LastUpdateTime] datetime null default (getdate())
	,[CreateOperator] nvarchar(50) null 
	,[LastUpdateOperator] nvarchar(50) null 
);

  

 

发表于 2019-06-05 18:21  Seven77yixuan  阅读(818)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2022-03-01
  • 2021-11-19
  • 2021-06-20
  • 2021-09-09
  • 2022-12-23
  • 2021-05-12
  • 2022-02-18
  • 2021-08-30
猜你喜欢
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
  • 2021-09-23
  • 2021-12-07
相关资源
相似解决方案