类似的语句在 oracle 中是不能执行的 insert into temp_tbl values('app'),('demo'); 但是在sql server 中是可以的 insert into classfirst values('122','demo'),('444','aaaaa')…
原文:SQL Server Insert操作中的锁 这篇博文简单介绍一下在SQL Server中一条Insert语句中用到的锁. 准备数据 首先我们建立一张表Table_1,它有两列Id(bigint)和Value(varchar),其中Id建立了主键. CREATE TABLE [dbo].[Table_2]( [Id] [bigint] NOT NULL, ) NULL, CONSTRAINT [PK_Table_2] PRIMARY KEY CLUSTERED ( [Id] ASC )WI…
原文:简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录 在很多的时候,我们会在数据库的表中设置一个字段:ID,这个ID是一个IDENTITY,也就是说这是一个自增ID.当并发量很大并且这个字段不是主键的时候,就有可能会让这个值重复:或者在某些情况(例如插入数据的时候出错,或者是用户使用了Delete删除了记录)下会让ID值不是连续的,比如1,2,3,5,6,7,10,那么在中间就断了几个数据,那么我们希望能在数据中找出这些相关的记录,我希望找出的记录是3,5,7,10,…
在上篇在SSIS 2012中使用CDC(数据变更捕获)中,介绍了如何在SSIS 2012中使用CDC,本文在此基础上介绍,如何通过Attunity提供的Change Data Capture Designer for Oracle实现对Oracle数据表的变更捕获.同样需要做一些准备工作: 1.配置Oracle数据库为归档模式,并获取浏览日志的指定权限: /* -- ============================================= -- 修改Oracle属性---Gen…
原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MySQL 安装MySQL的ODBC驱动MyODBC 1.为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN 2.建立链接数据库 EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL',…
select * from table where title like '%'?'%'; 采用? 传参会报错:sql server like 在将值转换成数据类型int失败 select * from table where title like '%str%'; 采用字符串拼接就OK,way?…
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式.check_expression 可以是任何类型的. replacement_value 在 check_expression 为 NULL时将返回的表达式.replacement_value 必须与…
Oracle使用存储过程实例: 例1: //查出表字段赋值给存储过程变量 create proc proc_stu @sname varchar(20), //默认是输入参数(input),另外还有两种类型 (output)(input output) @pwd varchar(20) as select * from ren where sname=@sname and pwd=@pwd go 查看结果:proc_stu 'admin','admin' 例2: //实现用户验证 下面的存储过程…
在说到对null值的理解主要是用unique来体现的.也是说null在unique约束看来是一个值还是多个值的问题. 还是开始实验吧. MYSQL create table t(x int ,constraint ix_unique_x unique index (x)); insert into t(x) values(null); insert into t(x) values(null); --向表中插入两个空值,在MYSQL 中是可以成功的. SQL Server create tabl…
SQL Server 2008中新增功能:可以使用单个Insert命令插入多行. Create table Demo_Values (PKID int not null identity(1,1) primary key ,DName Nvarchar(20) null ,DCode NVarchar(30) null ,DDate datetime null ) go --this SQL is only for SQL Server 2008 Insert into Demo_Values…
实现功能:新增特定类型的新闻时,自动追加特定的背景图片. 第一版(错误信息:不能在 'inserted' 表和 'deleted' 表中使用 text.ntext 或 image 列),代码如下: --创建insert插入类型触发器 if (object_id('tgr_news_QA_insert', 'tr') is not null) drop trigger tgr_news_QA_insert go create trigger tgr_news_QA_insert on news f…
-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.     -- Purpose: To search all columns of all tables for a given search string     -- Written by: Narayana Vyas Kondreddi     -- Site: http://vyaskn.tripod.com     -- Tested on: SQL Ser…
遇到的坑 在连接Oracle时,因为服务器为10g 32位版本,然后在本地安装了32为10g客户端,然后一直报错[7302.7303],后来下载了12c 64位版本,安装成功后,问题解决 原因:mssql和oracle只能进行相同位数版本的连接 由于连接mysql时直接用的odbc连接,所以未碰到版本冲突,如有冲突请告诉我一下哈 /* MSSQL --创建远程链接 EXEC sp_addlinkedserver @server='PACS_LINK', --被访问的服务器别名 @srvprodu…
根据时间做数据统计计算最讨厌开始和结束时间字段是NULL,为了处理NULL要写很多语句. 那么在数据库设计的时候给一个默认值:0001-01-01和9999-12-31,会给开发人员带来很大的便利. 在表字段的默认值应该输入:('0000-01-01')和('9999-12-31') 如果是当前日期,则(getdate()) 如果直接输入0000-01-01这种格式sql server不认…
一.  安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端. Orcale有两种形式的客户端: l         完整的客户端 包括访问服务器端数据库的基本Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File以及 SQL*Net .还包括用于配置客户端设置的工具.sqlplus.企业管理器等一系列的工具. l         立即客户端(instant clien…
在作业中执行远程连接时,需要对本次作业执行的步骤指定特定用户 并且该用户必须拥有所需操作数据库的db_owner角色,和服务器sysadmin角色 在作业中执行远程连接时,需要做登录映射 下面是我在作业中执行的sql脚本 /* 获取大容量访问权限,在执行作业时需先执行这句话 ALTER DATABASE TEMP SET TRUSTWORTHY ON GO */ --这句话在执行作业时必须加 SET QUOTED_IDENTIFIER ON GO /* 每月一号一点获取数据 */ ), ), )…
有一张表test如下: create table test ( id ,) primary key, num int ) 插入数据: ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); ); 问题:请用一条sql语句查询 统计出num在 1~6,  10~17,  19~20 这三个范围内的个数分别是多少? 解法如下: select end ) as [1-6], end ) as [10-17],…
在很多的时候,我们会在数据库的表中设置一个字段:ID,这个ID是一个IDENTITY,也就是说这是一个自增ID.当并发量很大并且这个字段不是主键的时候,就有可能会让这个值重复:或者在某些情况(例如插入数据的时候出错,或者是用户使用了Delete删除了记录)下会让ID值不是连续的,比如1,2,3,5,6,7,10,那么在中间就断了几个数据,那么我们希望能在数据中找出这些相关的记录,我希望找出的记录是3,5,7,10,通过这些记录可以查看这些记录的规律来分析或者统计:又或者我需要知道那些ID值是没有…
1.OUPUT参数返回值 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_buyerid int , @o_id bigint OUTPUT ) AS BEGIN SET NOCOUNT ON; BEGIN INSERT INTO [Order](o_buyerid ) VALUES (@o_buyerid ) SET @o_id = @@IDENTITY END END 存储过程中获得方法: DECLARE @o_buyerid int DECLARE…
我要查找值为‘WSCOL1525’的字段. declare @cloumns varchar(40)declare @tablename varchar(40)declare @str varchar(40)declare @counts intdeclare @sql nvarchar(2000)declare MyCursor Cursor For Select a.name as Columns, b.name as TableName from syscolumns a,sysobjec…
IDENT_CURRENT(tbname) 是看表对象.所以没有受作用域限制. SCOPE_IDENTITY()  受作用域限制.同一个会话里面不同作用域也会有差异 @@IDENTITY  受会话限制. 如果多线程写入数据库的话,获取某个会话的自增列的值,可以使用SCOPE_IDENTITY() 或者@@IDENTITY,不能使用IDENT_CURRENT(tbname)  insert into [dbo].[ttttt] select 'aaaa'  select SCOPE_IDENTIT…
DECLARE @what varchar(800)SET @what='123456' --要搜索的字符串   DECLARE @sql varchar(8000)   DECLARE TableCursor CURSOR LOCAL FORSELECT sql='IF EXISTS ( SELECT 1 FROM ['+o.name+'] WHERE ['+c.name+'] LIKE ''%'+@what+'%'' ) PRINT ''[字段值所在的表.字段]:['+o.name+'].[…
需求:在河道水情表(ST_RIVER_R )新增插入数据时,更新实时数据表(SS_data) 中关联字段的值. 需求概括下:当A表中新增数据时,同时更新B表中的某字段 代码如下: USE [DBCNBZ] GO /****** Object: Trigger [dbo].[tri_insert_a] Script Date: 2021/11/10 14:17:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ======…
如果没法避免一条一条的写入,那么在处理前显示开启一个事务 begin tran  在处理完成后 commit 这样也要比不开显示事务会快很多! while i < 10000begin insert into test_0607select @i,'0607无显示整体事务'set i = i + 1end drop table test_0607create table test_0607 (a int,b nvarchar(100)) ---加上事务begin trandeclare i in…
需求: 如果表字段的值为 0 则将其修改为1 ,如果表字段的值为 1 则将其修改为 0. 方法一 end 方法二 ) 方法三 )…
--drop procedure zcstest; create procedure zcstest ( @tableName varchar(max), @dataCount int output ) as declare @paramName varchar(max) set @tableName = LTRIM(@tableName) if @tableName is null or @tableName = '' begin set @paramName = '@tableName' g…
语句为 ALTER TABLE dbo.YourTable ADD CONSTRAINT DF_TimeDefault DEFAULT '00:00:00' FOR YourTimeColumn 比如设计表的时候填写默认值的格式为('00:00:00') 编辑列的时候格式为 00:00:00 参考http://stackoverflow.com/questions/4780435/add-default-value-for-time7-field…
如下字段红框里的信息都一样的,通过转换实现字段拼接 SELECT formmain_id,(SELECT field0040+';' FROM formson_5489 WHERE formmain_id=A.formmain_id FOR XML PATH('')) AS gjgzsx FROM formson_5489 A GROUP BY formmain_id order by 1…
) AS BIT) 或者 )…
SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GO CREATE proc [dbo].[is_yy] ) out, ), ) as begin ' begin ' RETURN @return_value end ' begin ' RETURN @return_value end end GO 存储过程如上,执行如下: ) ','' SELECT @return_value1 ) ' SELECT @return_value2 执行结果如下:…