SQL:
DROP VIEW IFは`V_TableToSqlserverText`をEXISTS。 ALGORITHM = UNDEFINED CREATE `localhost` @ DEFINER =` root` SQL SECURITY DEFINER VIEW `V_TableToSqlserverText` AS( TABLE_NAMEのテーブル名を選択、ROWNUM、SQLTEXT (FROM (FROM SQLTEXT、TABLE_NAME、0 ROWNUMを選択し object_idの場合は、 'c.TABLE_NAME、CONCATを(SELECT ( '' 'c.TABLE_NAME、''、 '' U '')がnullでない ドロップテーブル[ ' c.TABLE_NAME、 ']; CREATE TABLE'、c.TABLE_NAME、'(')SQLTEXT INFORMATION_SCHEMA FROM。 `TABLES`のC c.TABLE_SCHEMA = 'sevenblog' とc.TABLE_TYPEは= 'BASEのTABLE' )startSql UNION ALL SELECT c.TABLE_NAME、C。 CASE CASE WHEN c.ORDINAL_POSITION> 1 THEN '' ELSE '' END、 '['、 c.COLUMN_NAME、 ']'、 ( CASE c.COLUMN_KEY = 'PRI' THEN 'UNIQUEIDENTIFIER' THEN c.DATA_TYPE = 'VARCHAR' CONCAT( 'N'、c.DATA_TYPE、 '('、c.CHARACTER_MAXIMUM_LENGTH、 '')) ELSE c.DATA_TYPEの END )、 ''、 CASE c.IS_NULLABLE = 'NO' 'THEN' NULLでない ELSE 'NULL' END、 ''、 ( CASE LENGTH(c.COLUMN_DEFAULT)> 0 THEN CONCAT( 'デフォルト'、 '('、 ( WHEN c.COLUMN_DEFAULT = 'CURRENT_TIMESTAMP' THEN 'GETDATE()' c.DATA_TYPE = 'VARCHAR' THEN CONCAT WHEN( '' '' '' 'c.COLUMN_DEFAULT')を ELSE CONCAT(c.COLUMN_DEFAULT) END )、 '')) ELSE '' END )、 CASE WHEN c.COLUMN_KEY = 'PRI' THEN '主キー' ELSE '' END )SQLTEXT information_schema.columns FROMは、C c.TABLE_NAME = b.TABLE_NAME ON information_schema.`TABLES` BをJOIN sevenblog 'b.TABLE_SCHEMA =' AND b.TABLE_TYPE = 'BASE TABLE」 UNION ALL SELECT TABLE_NAME、100 ROWNUM、(からSQLTEXT C。TABLE_SCHEMA = 'sevenblog' AND c.TABLE_TYPE = 'BASEのTABLE'(からSQLTEXT SQLTEXT; '')c.TABLE_NAME、CONCAT(選択) information_schema.`TABLES` Cから )endStr )tablesqlの tablesql.TABLE_NAME、tablesql.rownum BY ORDER )。
結果は以下の通りであります
生成されたSQL
OBJECT_ID場合( 'login_log'、 'U')がnullでない [login_log]ドロップテーブルと 表login_logを作成する( [ID]がNULL主キーではないUNIQUEIDENTIFIER 、[ユーザーID]をnullでないint型 、[IPアドレス]はnvarchar(100)NOT NULL 、[Ipproxy]はnvarchar(100)NOT NULL 、[システム]のnvarchar(100)NOT NULLデフォルト(」「) 、[オプション] INTヌル 、[EnumDataEntityStatus] int型NOT NULLデフォルト(0) 、[CREATETIME]日時ヌルデフォルト(GETDATE()) 、[LastUpdateTime]日時ヌルデフォルト(GETDATE()) 、[CreateOperator] NVARCHAR (50)NULL 、[LastUpdateOperator] NVARCHAR(50)NULL ); OBJECT_ID(「ユーザ」、「U」)がnullでない場合 、ドロップテーブル[ユーザー]。 [ID]はnullで主キーではないUNIQUEIDENTIFIER 、[アカウント]のデータ型はnvarchar(255)NOT NULL 、[パスワード]データ型はnvarchar(255)NOT NULL 、[名前]データ型はnvarchar(255)NOT NULLデフォルト(」「) 、[性別] int型はnullを 、 【EnumDataEntityStatus] int型NOT NULLデフォルト(0) 、[BizCode]はnvarchar(255)NOT NULLデフォルト(」「) 、[型ID]は、NOT NULLデフォルト(0)がINT 、[型名] NVARCHAR(30)NULL 、[CREATETIME]日時をヌルデフォルト(GETDATE()) 、[LastUpdateTime]日時ヌルデフォルト(GETDATE()) 、[CreateOperator] NVARCHAR(50)NULL 、[LastUpdateOperator] NVARCHAR(50)NULL );