设为首页 加入收藏

TOP

DBA管理脚本大全(二)
2014-11-24 02:52:05 来源: 作者: 【 】 浏览:11
Tags:DBA 管理 脚本 大全
''')''''
WHEN ''''nvarchar'''' THEN ''''(''''+CONVERT(VARCHAR,B.PREC)+'''')''''
WHEN ''''real'''' THEN ''''''''
WHEN ''''smalldatetime'''' THEN ''''''''
WHEN ''''smallint'''' THEN ''''''''
WHEN ''''smallmoney'''' THEN ''''''''
WHEN ''''sql_variant'''' THEN ''''''''
WHEN ''''sysname'''' THEN ''''''''
WHEN ''''text'''' THEN ''''''''
WHEN ''''timestamp'''' THEN ''''''''
WHEN ''''tinyint'''' THEN ''''''''
WHEN ''''uniqueidentifier'''' THEN ''''''''
WHEN ''''varbinary'''' THEN ''''(''''+CONVERT(VARCHAR,B.PREC)+'''')''''
WHEN ''''varchar'''' THEN ''''(''''+CONVERT(VARCHAR,B.PREC)+'''')''''
WHEN ''''xml'''' THEN ''''''''
ELSE ''''''''END,''''-1'''',''''MAX'''') AS SQLTYPE,
case b.ISNULLABLE
when 0 then ''''NOT NULL''''
ELSE ''''NULL'''' END AS ISNULLABLE,B.COLORDER AS COLUMN_ID
FROM ''''@DBOWNER''''.DBO.sysobjects a
JOIN ''''@DBOWNER''''.DBO.syscolumns b ON a.id=b.id
JOIN ''''@DBOWNER''''.DBO.systypes c ON (b.xtype=c.xtype AND B.XUSERTYPE=C.XUSERTYPE)
WHERE A.XTYPE=''''U'''') A'
--MYSQL结构查询语句
SET @MYSQLTEXT=N'SELECT A.TABLE_NAME AS TABLENAME,B.COLUMN_NAME AS COLUMNNAME,
CASE B.COLUMN_TYPE
WHEN ''''INT(11)'''' THEN ''''INT''''
WHEN ''''TIMESTAMP'''' THEN ''''DATETIME''''
WHEN ''''BLOB'''' THEN ''''VARBINARY(4000)''''
ELSE UPPER(B.COLUMN_TYPE) END AS SQLTYPE,
B.COLUMN_TYPE AS ALLTYPE,
CASE B.IS_NULLABLE
WHEN ''''YES'''' THEN ''''NULL''''
WHEN ''''NO'''' THEN ''''NOT NULL''''
END AS ISNULLABLE,B.ORDINAL_POSITION AS COLUMN_ID
from information_schema.`TABLES` A
JOIN information_schema.`COLUMNS` B
ON (A.TABLE_NAME=B.TABLE_NAME AND A.TABLE_SCHEMA=B.TABLE_SCHEMA AND A.TABLE_CATALOG=B.TABLE_CATALOG)
WHERE A.TABLE_SCHEMA=''''''@DBOWNER'''''''' AND A.TABLE_TYPE=''''BASE TABLE'''''
SELECT @SOURCETEXT=REPLACE(CASE @SOURCETYPE WHEN 1 THEN @ORACLETEXT WHEN 2 THEN @MSSQLTEXT ELSE @MYSQLTEXT END,'''''@DBOWNER''''',@SOURCEDB)
SELECT @TARGETTEXT=REPLACE(CASE @TARGETTYPE WHEN 1 THEN @ORACLETEXT WHEN 2 THEN @MSSQLTEXT ELSE @MYSQLTEXT END,'''''@DBOWNER''''',@TARGETDB)
SELECT @SOURCETEXT= CASE ISNULL(@SOURCELINK,'') WHEN '' THEN '('+REPLACE(@SOURCETEXT,'''''','''')+')' ELSE 'OPENQUERY('+@SOURCELINK+','''+@SOURCETEXT+''')' END
SELECT @TARGETTEXT= CASE ISNULL(@TARGETLINK,'') WHEN '' THEN '('+REPLACE(@TARGETTEXT,'''''','''')+')' ELSE 'OPENQUERY('+@TARGETLINK+','''+@TARGETTEXT+''')' END
----由于远程多表连接查询的开销比较大,因此将查询的结果均放入临时表中
----SET @SQLTEXT=N'SELECT * FROM '+@SOURCETEXT+'A '+CHAR(10)+'JOIN(SELECT * FROM '+@TARGETTEXT+') B '+CHAR(10)+'ON (A.TABLENAME=B.TABLENAME AND A.COLUMNNAME=B.COLUMNNAME)'
IF EXISTS(SELECT * FROM tempdb.dbo.sysobjects WHERE xtype='U' AND name='##TEMPSOURCE')
DROP TABLE ##TEMPSOURCE
IF EXISTS(SELECT * FROM tempdb.dbo.sysobjects WHERE xtype='U' AND name='##TEMPTARGET')
DROP TABLE ##TEMPTARGET
EXEC ('SELECT * INTO ##TEMPSOURCE FROM '+@SOURCETEXT+' A')
EXEC ('SELECT * INTO ##TEMPTARGET FROM '+@TARGETTEXT+' A')
SELECT A.TABLENAME,A.COLUMNNAME,A.SQLT
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在SQL Server中对视图进行增删改 下一篇sqlserver给视图赋权限

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)