技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

sql server 中删除默认约束的通用sql脚本

在SQL Server 中,如果给表的一个字段设置了默认值,就会在系统表sysobjects中生成一个默认约束。如果想删除这个设置了默认值的字段(假设此字段名column1),执行“ALTER TABLE table1 DROP COLUMN column1”时就会报错:... 全文

sql server sql脚本

DBA!你也能写出优雅的SQL脚本

本篇来聊聊如何书写漂亮、整洁、优雅的SQL脚本,下面这些是我个人总结、整理出来的。姑且做个抛砖引玉吧,呵呵,欢迎大家一起来讨论。我们首先来看看一段创建数据表的脚本(如下所示),你是否觉得有什么不妥或是不足呢?如果是你,你怎样书写呢?... 全文

SQL脚本

DB2 SQL脚本批量执行的实现过程

DB2 SQL脚本批量执行是我们在使用DB2数据库时经常要用到的操作,那么DB2 SQL脚本批量执行应该如何实现呢?阅读下文,您就可以找到答案。DB2 SQL脚本批量执行:环境: Windows系统 DB2客户端或者服务端... 全文

DB2 SQL脚本批量执行

DB2命令窗口中执行SQL脚本的方法

本文将为您介绍DB2 命令窗口中执行SQL 脚本的详细方法,供您参考,希望对您有所帮助。可以在命令编辑器或者Windows 的DB2 命令窗口或者 Linux 的shell 中执行SQL 脚本。在windows 的DB2 命令窗口或者 linux 的shell 中执行SQL语句,可以使用下面的命令执行script1.sql脚本:db2 -t -v -f script1.sql -z script1.log或者:db2 –tvf script1.sql –z script1.log在上面的命令中,... 全文

DB2 SQL 脚本

浅谈如何在SQL Server中生成脚本

在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本。生成脚本的一些选项,如下图:我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍有差异。这个差异可以参看下面两篇文章... 全文

SQL Server 脚本 数据库管理

SQL注入技术和跨站脚本攻击的检测

在这两年中,安全专家应该对网络应用层的攻击更加重视。因为无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循安全代码进行开发,攻击者将通过80端口进入你的系统。广泛被使用的两个主要攻击技术是SQL注入[ref1]和CSS[ref2]攻击。SQL注入是指:通过互联网的输入区域,插入SQL meta-characters(特殊字符 代表一些数据)和指令,操纵执行后端的SQL查询的技术。这些攻击主要针对其他组织的WEB服务器。CSS攻击通过在URL里插入script标签,然后 诱导信任它们的用户点击它们,确保恶意Javascript代码在受害人的机器上运行。这些攻击利用了用户和服务器之间的信任关系,事实上服务器没有对输入、输出进行检测,从而未拒绝javascript代码。... 全文

SQL 跨站 脚本攻击

------------------------将表数据生成SQL脚本的存储过程------------------------ - fredrickhu的专栏 - 博客频道

--将表数据生成SQL脚本的存储过程CREATE PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column varchar(1000) declare @columndata varchar(1000) declare @sql varchar(4000) declare @xtype tinyint declare @name sysname declare @objectId int declare @objectname sysname declare @ident int... 全文

sql 脚本 存储 object insert null

在Sql Server 2005中导出登录用户信息脚本

在做数据迁移时,如果需要把一个Sql Server上的用户在另外一个Sql Server上重新生成时,就可以用以下这个方法轻松解决:首先在查询分析器中执行以下的代码:... 全文

Sql Server

【Oracle脚本】Oracle进程相关的SQL脚本

1、 求当前会话的SID,SERIAL#    select sid, serial# from v$session where audsid = sys_context('userenv', 'sessionid'); 2、 查询session的OS进程ID    ... 全文

Oracle style color cccccc

SQL批处理脚本在DB2中的执行(1)

本文将为您介绍在DB2中批量执行SQL脚本,包括准备工作、执行不同类型的SQL、写批处理脚本等一系列的步骤,供您参考,希望能对您有所帮助。环境:Windows系统 DB2客户端或者服务端一、准备工作 运行db2cmd或者db2cw打开DB2命令行处理器 进入SQL脚本存放目录 用db2 connect to <dbname> user <username> using <password> 命令连接数据库... 全文

DB2 批处理脚本

防范SQL指令植入式攻击

什么是SQL 指令植入式攻击?... 全文

SQL 攻击 数据库 脚本 安全

DBA常用脚本(应以前的话)

例28.1  查看数据库所在机器操作系统参数(xp_msver)查看数据库所在机器操作系统参数的存储过程如下EXEC master..xp_msver 例28.2  查看当前数据库服务器名(xp_getnetname、HOST_NAME())EXEC master..xp_getnetname 或者:SELECT HOST_NAME()例28.3  查看服务器上所有Windows本地组(xp_enumgroups)查看服务器上所有Windows本地组的存储过程如下EXEC master..xp_enumgroups 例28.4  查看服务器上安装的所有代码页(xp_enumcodepages)查看服务器上安装的所有代码页的存储过程如下EXEC master..xp_enumcodepages 嘿嘿,是不是报没开启错误啊~~没错误略过先执行下面语句USE master;GOEXEC sp_configure 'show advanced option', '1';RECONFIGUREEXEC sp_configure 'Web Assistant Procedures',1RECONFIGUREEXEC sp_configure例28.5  查看指定目录的所有下一级子目录(xp_subdirs)查看C:\WINDOWS\Drivers目录所有下一级子目录的存储过程如下EXEC [master].[dbo].[xp_subdirs] 'C:\WINDOWS\Drivers' 查看磁盘信息的存储过程如下EXEC [master].[dbo].[xp_availablemedia]或者采用下列语句EXEC master..xp_fixeddrives请注意:其中,low free为以字节为单位的空闲空间,media type为驱动器类型,软驱为1,硬盘为2,CD-ROM为8。例28.8  查看硬盘文件信息(xp_dirtree)查看C盘文件信息的存储过程如下EXEC master..xp_dirtree 'c:'查看C盘深度为1的文件信息的存储过程如下EXEC master..xp_dirtree 'c:',1 查看C盘深度为1、是否为的信息的存储过程如下EXEC master..xp_dirtree 'c:',1,1查看“C:\WINDOWS\Web”目录中的文件信息的存储过程如下EXEC master..xp_dirtree 'C:\WINDOWS\Web'例28.9  查看服务器提供的OLEDB程序(xp_enum_oledb_providers)查看服务器提供的OLEDB程序的存储过程如下EXEC master..xp_enum_oledb_providers例28.10  查看数据库服务名(@@SERVERNAME)print 'SQL Server数据库服务名: ' +     convert(varchar(30),@@SERVERNAME)查看结果如下:SQL Server数据库服务名: SZX\SQLS2008例28.11  查看数据库实例名(@@SERVICENAME)PRINT 'SQL Server数据库实例名: ' +    convert(varchar(30),@@SERVICENAME)查看结果如下:SQL Server数据库实例名: MSSQLSERVER例28.12  查看DBMS数据库的版本(@@version、sp_msgetversion)查看DBMS版本的命令如下SELECT @@version SQL_Server版本或者EXEC master..sp_msgetversion例28.13  查看数据库配置参数(sp_configure)查看数据库配置参数的存储过程如下EXEC sp_configure例28.14  查看所有数据库名称、容量等信息(sp_helpdb、sp_databases)sp_helpdb或sp_databases查看单个数据库的容量:如sql92_exam_xjglsp_helpdb sql92_exam_xjgl例28.15  查看所有数据库名称及大小(sp_helpdb)查看所有数据库名称及大小的存储过程如下EXEC sp_helpdb 例28.16  修改数据库的名称(sp_renamedb)EXEC sp_renamedb 'old_dbname', 'new_dbname'例28.17  查看当前数据库的启动时间(sysprocesses)SELECT convert(varchar(30),login_time,120)启动时间FROM master..sysprocesses WHERE spid=1 例28.18  查看当前数据库文件路径等信息(sp_helpfile)sp_helpfile例28.19  查看AdventureWorks数据库文件路径(sysfiles)SELECT ltrim(rtrim(filename)) FROM AdventureWorks..sysfiles WHERE charindex('MDF',filename)>0查看结果如下:C:\Program Files\Microsoft SQL Server\100\Tools\Samples\AdventureWorks_Data.mdf例28.20  查看当前数据库文件组名(sp_helpfilegroup)sp_helpfilegroup例28.21  查看当前数据库中所有的存储过程(sysobjects)查看当前数据库中所有存储过程的命令如下SELECT name as存储过程名称FROM sysobjects WHERE xtype='P'例28.22  查看数据库里所有的存储过程和函数(sp_stored_procedures)查看某个数据库里所有存储过程和函数的命令如下use AdventureWorksGOEXEC sp_stored_procedures例28.23  查看所有数据库日志文件大小(dbcc sqlperf())查看所有数据库日志文件大小的命令如下dbcc sqlperf(logspace)例28.24  查看SQL Server错误日志(xp_enumerrorlogs、xp_readerrorlog)(1)查看SQL Server错误日志信息EXEC master..xp_enumerrorlogs (2)查看当前错误日志具体内容EXEC [master].[dbo].[xp_readerrorlog] 例28.25  查看数据库角色信息(sp_helpRole)查看数据库角色信息的存储过程如下EXEC sp_helpRole例28.26  查看所有数据库用户所属的角色信息(sp_helpsrvrolemember)查看所有数据库用户所属角色信息的存储过程如下EXEC sp_helpsrvrolemember 例28.27  查看角色成员用户信息(sp_helpRoleMember)查看角色成员用户信息的存储过程如下EXEC sp_helpRoleMember 'db_owner'例28.28  查看当前数据库所有用户信息(sp_helpUser)查看数据库用户信息的存储过程如下EXEC sp_helplogins 例28.29  查看本地数据库用户登录信息(sp_helplogins)查看本地数据库用户登录信息的存储过程如下EXEC sp_helplogins   例28.30  查看远端数据库用户登录信息(sp_helpremotelogin )查看远端数据库用户登录信息的存储过程如下EXEC sp_helpremotelogin 例28.31  查看链接服务器的登录信息(sp_helplinkedsrvlogin)查看链接服务器信息的存储过程如下EXEC sp_helplinkedsrvlogin 例28.32  将用户账户添加到数据库中(sp_grantdbaccess)将guest用户账户添加到数据库中的命令如下:USE sql92_exam_xjglGO EXEC sp_grantdbaccess guest例28.33  查看数据库下对象级用户权限(sp_helprotect)查看数据库下对象级用户权限的存储过程如下EXEC sp_helprotect例28.34  获得当前数据库所有用户表的名称(sysobjects)获得当前数据库所有用户表名称的命令如下SELECT OBJECT_NAME (id)FROM sysobjectsWHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0例28.36  查询单个用户创建的所有数据库(sysdatabases)查询sa用户创建的所有数据库的命令如下SELECT name,dbid,filenameFROM master..sysdatabases D WHERE sid not in(SELECT sid FROM master..syslogins WHERE name='sa')或者通过以下命令实现:SELECT dbid, name AS DB_NAME,filename FROM master..sysdatabases WHERE sid <> 0x01例28.37  查看一个表上相关的对象(sysobjects、syscomments)查询一个表上相关对象的命令如下SELECT a.* FROM sysobjects a, syscomments b WHERE a.id = b.id and b.text like '%teacher%'例28.38  获取某一个表的所有字段(syscolumns、sp_mshelpcolumns)获取某一个表的所有字段的命令如下SELECT name FROM syscolumns WHERE id=object_id('teacher')或者通过以下存储过程实现EXEC sp_mshelpcolumns  'teacher'例28.39  获得指定表上所有的索引名称(sysindexes)通过系统表sysindexes获得指定表上所有索引名称的命令如下SELECT name FROM sysindexesWHERE id = OBJECT_ID ('dept') AND indid > 0例28.40  查询某一个表的字段和数据类型(information_schema.columns)查询某一个表的字段和数据类型的命令如下SELECT column_name,data_type FROM information_schema.columnsWHERE table_name = N'teacher'例28.41  获取某一个表的基本信息(sp_MShelpcolumns)获取某一个表的基本信息的存储过程如下EXEC sp_MShelpcolumns N'teacher'例28.42  获取某一个表的主键、外键信息(sp_pkeys、sp_fkeys)获取表teacher的主键信息的存储过程如下EXEC sp_pkeys N'teacher'获取表teacher的外键信息的存储过程如下:EXEC sp_fkeys   N'teacher'例28.43  判断某一个表是否存在某一字段(syscolumns)通过系统表syscolumn判断某一个表是否存在某一字段的命令如下:if exists(SELECT 1 FROM syscolumns            WHERE id=object_id(N'teacher') and name=N'tname')    print  N'存在'else    print  N'不存在'例28.44  查看单个存储过程和函数的源代码(sp_helptext)查看单个存储过程和函数源代码的存储过程如下USE AdventureWorksGOEXEC sp_helptext 'dbo.uspLogError' 例28.45  查看数据库里用户和进程的信息(sp_who)(1)查看数据库里用户和进程信息EXEC sp_who 其中,spid是进程编号,进程号1--50是SQL Server系统内部用的,进程号大于50的是用户的连接进程。(2)查看活动用户和进程信息的存储过程如下EXEC sp_who 'active'例28.46  清除sleeping进程(Kill__Sleeping_Processes)Sleeping进程是系统中处于睡眠状态尚未活动的进程,这部分进程可以杀掉。CREATE PROCEDURE dbo.Kill__Sleeping_Processes @dbname varchar(50) AS BEGIN SET NOCOUNT ON DECLARE @spid INT, @cnt INT, @sql VARCHAR(255) SELECT @spid = MIN(spid),@cnt = COUNT(*) FROM master..sysprocesses WHERE dbid = DB_ID(@dbname) AND spid != @@SPID AND status = 'sleeping'WHILE @spid IS NOT NULL BEGIN SET @sql = 'KILL ' + RTRIM(@spid) EXEC ( @sql ) SELECT @spid = MIN(spid),@cnt = COUNT(*) FROM master..sysprocesses WHERE dbid = DB_ID(@dbname) AND spid != @@SPID AND status = 'sleeping'END END GO 运行改存储过程后杀掉sleeping进程:Kill__Sleeping_Processes SQLS2008  清除前后可以用EXEC sp_who 'active '进行查看。例28.47  查看进程正在执行的SQL语句(dbcc inputbuffer ())查看进程正在执行的SQL语句:dbcc inputbuffer (spid) 其中spid是用sp_who查询出来的spid号,如:56。查看56号进程正在执行的SQL语句实例如下dbcc inputbuffer (56)例28.48  查看数据库锁(sp_lock)查看SQL Server数据库里锁的情况的存储过程如下EXEC sp_lock 其中,spid是进程编号,dbid是数据库编号,Objid是数据对象编号。例28.49  查看数据库死锁的进程(proc_who_lock)用proc_ find _lock过程查看数据库死锁的进程。if exists (SELECT *            FROM dbo.sysobjects            WHERE id = object_id(N'[dbo].[proc_find_lock]')            and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[proc_find_lock]GOuse mastergocreate procedure proc_find_lockasbegindeclare @spid int,@bl int,@intTransactionCountOnEntry int,         @intRowcount int,         @intCountProperties int,         @intCounter intcreate table #temp_lock (id int identity(1,1),spid smallint,bl smallint)IF @@ERROR<>0 RETURN @@ERRORinsert into #temp_lock(spid,bl)    SELECT   0 ,blocked   FROM (SELECT * FROM sysprocesses WHERE   blocked>0 ) a    WHERE not exists(SELECT *                     FROM (SELECT *                           FROM sysprocesses                           WHERE   blocked>0 ) b                     WHERE a.blocked=spid)   union SELECT spid,blocked          FROM sysprocesses          WHERE   blocked>0IF @@ERROR<>0 RETURN @@ERROR   SELECT @intCountProperties = Count(*),@intCounter = 1  --找到临时表的记录数   FROM #temp_lockIF @@ERROR<>0 RETURN @@ERROR    if @intCountProperties=0      SELECT '没有阻塞和死锁信息' as 提示while @intCounter <= @intCountPropertiesbeginSELECT @spid = spid,@bl = blFROM #temp_lock WHERE Id = @intCounter beginif @spid =0     SELECT '引起数据库死锁的进程号是: '+ CAST(@bl AS VARCHAR(10))            + ',其执行的SQL语句为:'else    SELECT '进程号SPID:'+ CAST(@spid AS VARCHAR(10))           + '被' + '进程号SPID:'+ CAST(@bl AS VARCHAR(10))            +'阻塞,其当前进程执行的SQL语句为:'DBCC INPUTBUFFER (@bl )endset @intCounter = @intCounter + 1enddrop table #temp_lockreturn 0end运行过程proc_find_lockproc_find_lock例28.50  备份当前数据库(backup database)(1)完全备份declare @a sysname,@s nvarchar(4000) SELECT @a=db_name(),@s='e:\sql_db_bak_full' backup database @a to disk=@s WITH format已为数据库'sql92_exam_xjgl',文件'sql92_example'(位于文件1上)处理了240页。已为数据库'sql92_exam_xjgl',文件'sql92_example_log'(位于文件1上)处理了1页。BACKUP DATABASE成功处理了241页,花费0.101秒(19.547 MB/秒)。(2)差异备份declare @a sysname,@s nvarchar(4000) SELECT @a=db_name(),@s='e:\sql_db_bak_diff' backup database @a to disk=@s WITH DIFFERENTIAL,format已为数据库'sql92_exam_xjgl',文件'sql92_example' (位于文件1上)处理了40页。已为数据库'sql92_exam_xjgl',文件'sql92_example_log' (位于文件1上)处理了1页。BACKUP DATABASE WITH DIFFERENTIAL成功处理了41页,花费0.095秒(3.530 MB/秒)。  差异备份要在至少有一次完全备份成功之后才能实施,否则出错。例28.51  从磁带中恢复完整的数据库备份从磁带中恢复sql92_exam_xjgl的完整数据库备份。USE masterGORESTORE DATABASE  sql92_exam_xjgl   FROM TAPE = '\\.\Tape0'GO例28.52  在脱机状态下进行数据库备份和恢复在脱机状态下对sql92_exam_xjgl数据库进行备份和恢复。步骤如下: 卸载需要进行备份恢复的sql92_exam_xjgl数据库。在master数据库下新建下列查询分析语句:Sp_detach_db  'sql92_exam_xjgl'运行结果为:命令已成功完成。 复制sql92_exam_xjgl 库的sql92_example.mdf文件和sql92_example_log.ldf文件到E:\下。  启动数据库服务器进行恢复。sp_attach_db 'sql92_exam_xjgl', 'E:\sql92_example.mdf', 'E:\sql92_example_log.ldf' 运行结果为:命令已成功完成。当恢复单个mdf文件采用下列语句:sp_attach_single_file_db 'sql92_exam_xjgl','E:\sql92_example.mdf'' 本文出自 “鸟蛋屋” 博客,谢绝转载!... 全文

SQL 脚本 DBA 休闲 职场

SQL 查询实用教材(直接执行脚本)

-- 提示:文章本身就是一个sql脚本,可以直接执行。 -- 该文章参考了 http://lavasoft.blog.51cto.com/62575/38929/,对文章内容做了精简。 -- 文章主要针对MYSQL,目的是以简明的方式说明各种查询。 use test; -- CUSTOEMRS 表现客户信息 -- ORDERS 表现客户所下订单信息,其中CUSTOMER_ID描述该订单为哪一个客户所下。 DROP TABLE IF EXISTS CUSTOMERS; DROP TABLE IF EXISTS ORDERS; CREATE TABLE CUSTOMERS (ID BIGINT NOT NULL,NAME VARCHAR(15) NOT NULL,AGE INT, PRIMARY KEY (ID)); CREATE TABLE ORDERS (ID BIGINT NOT NULL,ORDER_NUMBER VARCHAR(15) NOT NULL, PRICE DOUBLE PRECISION,CUSTOMER_ID BIGINT,PRIMARY KEY (ID)); -- ================================================================================== INSERT INTO CUSTOMERS(ID,NAME,AGE) VALUES(1,'TOM',21); INSERT INTO CUSTOMERS(ID,NAME,AGE) VALUES(2,'MIKE',24); INSERT INTO CUSTOMERS(ID,NAME,AGE) VALUES(3,'JACK',30); INSERT INTO CUSTOMERS(ID,NAME,AGE) VALUES(4,'LINDA',25); INSERT INTO CUSTOMERS(ID,NAME,AGE) VALUES(5,'DAMA',NULL); -- 大妈,年龄不详 -- ================================================================================= INSERT INTO ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) VALUES(1,'TOM_ORDER001',100,1); INSERT INTO ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) VALUES(2,'TOM_ORDER002',200,1); INSERT INTO ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) VALUES(3,'TOM_ORDER003',300,1); INSERT INTO ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) VALUES(4,'MIKE_ORDER001',100,2); INSERT INTO ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) VALUES(5,'JACK_ORDER001',200,3); INSERT INTO ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) VALUES(6,'LINDA_ORDER001',100,4); INSERT INTO ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) VALUES(7,'不明订单',200,NULL); -- 该订单没有客户 -- 5号大妈没有下订单 -- ================================================================================== -- 各种查询示例: -- =================交叉连接==================================================== -- 隐式交叉连接,将会形成两个集合的迪卡尔积(请注意观察结果) SELECT O.ID, O.ORDER_NUMBER, C.ID, C.NAME FROM ORDERS O , CUSTOMERS C ; -- 显式交叉连接 SELECT O.ID, O.ORDER_NUMBER, C.ID, C.NAME FROM ORDERS O CROSS JOIN CUSTOMERS C ; -- 该转接可以会形成一个m*n行的中间表,它无实际意义,但可以做为后面的查询的基础。 -- =============================================================================== -- ===================内连接(观察结果)============================================ SELECT O.ID,O.ORDER_NUMBER,C.ID,C.NAME FROM CUSTOMERS C,ORDERS O WHERE C.ID=O.CUSTOMER_ID; -- 隐式 SELECT O.ID,O.ORDER_NUMBER, C.ID, C.NAME FROM ORDERS O INNER JOIN CUSTOMERS C ON O.CUSTOMER_ID=C.ID; -- 显示 /* +----+----------------+----+-------+ | ID | ORDER_NUMBER | ID | NAME | +----+----------------+----+-------+ | 1 | TOM_ORDER001 | 1 | TOM | | 2 | TOM_ORDER002 | 1 | TOM | | 3 | TOM_ORDER003 | 1 | TOM | | 4 | MIKE_ORDER001 | 2 | MIKE | | 5 | JACK_ORDER001 | 3 | JACK | | 6 | LINDA_ORDER001 | 4 | LINDA | +----+----------------+----+-------+ */ -- 实质上对“交叉连接”的中间表进行了过滤(ON O.CUSTOMER_ID=C.ID), -- 该查询描述出:每个下过订单的客户,所下订单的情况。注意:7号订单,5号客户并未出现在结果中。 -- ===================左外连接============================================================ SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME FROM ORDERS O LEFT OUTER JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID; /* +----+----------------+-------------+------+-------+ | ID | ORDER_NUMBER | CUSTOMER_ID | ID | NAME | +----+----------------+-------------+------+-------+ | 1 | TOM_ORDER001 | 1 | 1 | TOM | | 2 | TOM_ORDER002 | 1 | 1 | TOM | | 3 | TOM_ORDER003 | 1 | 1 | TOM | | 4 | MIKE_ORDER001 | 2 | 2 | MIKE | | 5 | JACK_ORDER001 | 3 | 3 | JACK | | 6 | LINDA_ORDER001 | 4 | 4 | LINDA | | 7 | 不明订单 | NULL | NULL | NULL | --》多出的行 +----+----------------+-------------+------+-------+ */ -- 观察结果:实质上是在内连接的基础上,增加了左表(ORDERS)中无法与右表相连的记录,如:7号记录。 -- =========================================================================================== -- ===================右外连接================================================================ SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME FROM ORDERS O RIGHT OUTER JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID; /* +------+----------------+-------------+----+-------+ | ID | ORDER_NUMBER | CUSTOMER_ID | ID | NAME | +------+----------------+-------------+----+-------+ | 1 | TOM_ORDER001 | 1 | 1 | TOM | | 2 | TOM_ORDER002 | 1 | 1 | TOM | | 3 | TOM_ORDER003 | 1 | 1 | TOM | | 4 | MIKE_ORDER001 | 2 | 2 | MIKE | | 5 | JACK_ORDER001 | 3 | 3 | JACK | | 6 | LINDA_ORDER001 | 4 | 4 | LINDA | | NULL | NULL | NULL | 5 | DAMA | --》多出的行 +------+----------------+-------------+----+-------+ */ -- 观察结果:质上是在内连接的基础上,增加了右表(CUSTOMERS)中无法与左表相连的记录,如:5号记录。 -- ============================================================================================= -- ===================全外连接================================================================== -- SELECT O.ID,O.ORDER_NUMBER,O.CUSTOMER_ID,C.ID,C.NAME FROM ORDERS O FULL OUTER JOIN CUSTOMERS C ON C.ID=O.CUSTOMER_ID; /* +------+----------------+-------------+----+-------+ | ID | ORDER_NUMBER | CUSTOMER_ID | ID | NAME | +------+----------------+-------------+----+-------+ | 1 | TOM_ORDER001 | 1 | 1 | TOM | | 2 | TOM_ORDER002 | 1 | 1 | TOM | | 3 | TOM_ORDER003 | 1 | 1 | TOM | | 4 | MIKE_ORDER001 | 2 | 2 | MIKE | | 5 | JACK_ORDER001 | 3 | 3 | JACK | | 6 | LINDA_ORDER001 | 4 | 4 | LINDA | | 7 | 不明订单 | NULL |NULL| NULL | --》多出的行 | NULL | NULL | NULL | 5 | DAMA | --》多出的行 +------+----------------+-------------+----+-------+ */ -- 观察结果:质上是在内连接的基础上,增加了右表(CUSTOMERS)中无法与左表相连的记录, -- 如:5号记录,增加了左表(ORDERS)中无法与右表相连的记录,如:7号记录。。 -- 该连接在MySQL中是不支持的,只有对Oracle和SQL Server支持。 ... 全文

SQL 交叉 内连 左连 右连

---------------创建定时作业的脚本----------------- - fredrickhu的专栏 - 博客频道

通过脚本创建JOB: ifexists (select*from dbo.sysobjects where id =object_id(N[dbo].[p_createjob]) andOBJECTPROPERTY(id, NIsProcedure) =1) dropprocedure[dbo].[p_createjob]GOcreateproc p_createjob      @jobnamevarchar(100), --作业名称       @sqlvarchar(8000), --要执行的命令       @serverName sysname=, --job server名 ... 全文

作业 脚本 数据库 tsql sql server

DB2批量执行SQL脚本的实现

下面为您介绍的是DB2批量执行SQL脚本的实现方法,如果您在DB2批量执行方面遇到过类似的问题的话,不妨一看,相信对您学习DB2批量执行方面会有所帮助。环境:Windows系统DB2客户端或者服务端一、准备工作运行db2cmd或者db2cw打开DB2命令行处理器进入SQL脚本存放目录... 全文

DB2批量执行

MySQL命令行下执行.sql脚本详解

本文主要介绍一个在MySQL命令行下执行脚本文件的例子,通过这个例子让我们来了解一下在命令行下MySQL是怎样执行脚本的吧。现在我们开始介绍这一过程。1.首先编写sql脚本,保存为的:book.sql,内容如下:... 全文

MySQL命令行

SQL Performance Analyzer SPA常用脚本汇总

SPA常用脚本汇总 附件为 一个SPA报告本文出自 “Ask Maclean Liu Oracle” 博客,请务必保留此出处http://maclean.blog.51cto.com/2923249/1278508... 全文

RAT Oracle 数据库 spa

[推荐](T

[推荐]得到一个给定用户使用了的权限脚本——通过知识共享树立个人品牌。得到一个给定用户使用了的权限脚本,直接上代码,自己研究。     SET ANSI_NULLS ON... 全文

T-SQL 给定用户使用了 权限脚本

微软很坑爹,SCVMM Update Rollup 1安装后还需执行SQL脚本!

前一阵子通过自动更新,给SCVMM 2012 R2打上了Update Rollup 1,一直没对SCVMM做什么调整,也没发现问题。这两天重新配置了云,为用户角色分配资源的时候,只要选上了VM网络或者VM模板,救报错: 错误(20413)VMM 遇到了关键异常,并且在 C:\ProgramData\VMMLogs\SCVMM.5bce0ddb-8df8-4747-bb05-3db2cb2eea5c\report.txt 创建了异常报告。建议的操作请参阅此报告以了解更多详细信息,并且在用户论坛中搜索常见故障的根本原因,以自行解决故障。 ... 全文

SCVMM error 20413

运行GoldenGate ddl_setup.sql脚本时报错*** Please move GOLDENGATE to its own tablespace

SQL> @ddl_setup Oracle GoldenGate DDL Replication setup script Verifying that current user has privileges to install DDL Replication... You will be prompted for the name of a schema for the Oracle GoldenGate database objects. NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled. NOTE: The schema must be created prior to running this script. NOTE: Stop all DDL replication before starting this installation. Enter Oracle GoldenGate schema name:goldengate Working, please wait ... Spooling to file ddl_setup_spool.txt Checking for sessions that are holding locks on Oracle Golden Gate metadata tables ... Check complete. declare * ERROR at line 1: ORA-20783: ORA-20783: Oracle GoldenGate DDL Replication setup: *** Please move GOLDENGATE to its own tablespace ORA-06512: at line 34 I've read the script, it seems that the problem can be fixed like this: $export ALLOW_SHARED_TABLESPACE='TRUE' ... 全文

1 2