-
详解SQL中drop、delete和truncate的异同
第一:相同点: truncate和不带where子句的delete,以及drop都会删除表内的数据第二:不同点:1.truncate和delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态。2.delete语句是数据库操作语言(dml),这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger执行的时候将被触发...
数据库操作教程 2022-09-23 17:43:38 -
实例理解SQL中truncate和delete的区别
本文以一个简单实例为大家介绍了SQL中truncate和delete的区别,帮助大家理解,具体内容如下---创建表Table1IFOBJECT_ID('Table1','U')ISNOTNULLDROPTABLETable1GOCREATETABLETable1(IDINTNOTNULL,FOIDINTNOTNULL)GO--插入测试数据INSERTINTOTable1VALUES(1,101),(2,102),(3,103),(4,104)GO---创建表Table2IFOBJECT_ID('Table2','U')ISNOTNULLDROPTABLETable2GOCREATETABLETable2(FOIDINTNOTNULL)GO--插入测试数据INSERTINTOTable2VALUES(101),(102),(103),(104)GOSELECT*FROMTable1GOSELECT*FROMTable2GO在Table1表中创建触发器,当表中的数据被删除时同时删除Table2表中对应的FOIDCREATETRIGGERTG_Table1ONTable1AFTERDELET...
数据库操作教程 2022-09-23 17:42:41 -
使用NotePad++录制宏功能如何快速将sql搜索条件加上前后单引号
當我們有很多筆的條件要對資料庫進行搜尋時,常常會用到下列的語法SELECT*FROMMemberWHEREaccuntin('Tom','John','May')在上述語法IN的搜尋條件中,有Tom、John、May三個帳號條件,資料量少的話,還可以一筆一筆的在帳號的前後加上單引號及後面加上逗號,可是當你遇到要一次查詢50個帳號的情況,一筆一筆的輸入,應該會耗費不少時間。以前我都會用Excel裡的CONCATENATE函式來處理這樣的資料,但是有一天同事教我可以用NotePad++的巨集功能來完成這件事情我覺得這方式比在Excel處理還快速,所以在這裡分享一下1.將要處理的搜尋條件貼到NotePad++,以下圖來看,有25筆(圖中的英文名字是從google隨機搜尋到的清單)2.因為巨集就是將你的操作紀錄下來,所以先將游標移到第一筆資料的開始位置,然後按下NotePad++工具列上的巨集按鈕,開始錄製3.因為游標已經在最開頭,也就是第一筆資料的位置,所以請直接用鍵盤,按照下面的鍵盤按鍵順序進行輸入(下方括號中的都是鍵盤的按鍵喔)「'」→「End」→「'」→「,」→「↓」→「H...
数据库操作教程 2022-09-23 17:39:42 -
Transactionalreplication(事务复制)详解之如何跳过一个事务
在transactionalreplication,经常会遇到数据同步延迟的情况。有时候这些延迟是由于在publication中执行了一个更新,例如updatetasetcol=?Where?,这个更新包含巨大的数据量...
数据库操作教程 2022-09-23 17:38:49 -
MSSQL报错:参数数据类型text对于replace函数的参数1无效的解决办法
但是我们可以换一种方法解决这个问题。下面就来分析下解决办法...
数据库操作教程 2022-09-23 17:38:28 -
在SQLServer中查询资料库的TABLE数量与名称的sql语句
在SQLServer中每一个database裡都有一个系统所产生的tablesysobjects这一个table中记录了database中所有的table名称我们可以用下面的SQL语法作查询的动作复制代码代码如下:SelectName,idfromsysobjectswherextype='U'其中xtype='U'代表使用的table,若是使用xtype='S'则代表系统预设的table在系统table中还有一个名叫syscolumns的table他记录了栏位的资料若是想要找出某一个table的栏位相关资料,可以用下面的SQL语法....
数据库操作教程 2022-09-23 17:38:03 -
SQLSERVER使用REPLACE将某一列字段中的某个值替换为其他的值
SQLSERVER将某一列字段中的某个值替换为其他的值update表名set列名=REPLACE(列名,'aa'...
数据库操作教程 2022-09-23 17:35:47 -
SqlServer实现类似Oracle的before触发器示例
1.插入数据前判断数据是否存在SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:<Author,,Name>--Createdate:<CreateDate,,>--Description:<Description,,>--=============================================alterTRIGGERCategoryExistTriggerONProductCategoryinsteadofinsertASdeclare@categoryNamevarchar(50);BEGIN--SETNOCOUNTONaddedtopreventextraresultsetsfrom--interferingwithSELECTstatements...
数据库操作教程 2022-09-23 17:35:39 -
sql2000报错Successfullyre-openedthelocaleventlog解决方法
报错1:Unabletoreadlocaleventlog(reason:事件日志文件已在读取间更改。报错2:Successfullyre-openedthelocaleventlog-NOTE:Someeventsmayhavebeenmissed.微软解释:http://support.microsoft.com/default.aspx?scid=kb;en-us;811484解决办法:如果要防止错误日志,中出现这些消息可以使用跟踪标志2505作为启动参数要将跟踪标志2505作为SQLServer启动参数,使用以下步骤:1.企业管理器,右键单击服务器名称,依次属性...
数据库操作教程 2022-09-23 17:34:47 -
SqlServer2012中LEAD函数简单分析
LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本DECLARE@TestDataTABLE(IDINTIDENTITY(1,1),DepartmentVARCHAR(20),LastNameVARCHAR(20),RateFLOAT)INSERTINTO@TestData(Department,LastName,Rate)SELECT'DocumentControl','Arifin',17.7885UNIONALLSELECT'DocumentControl','Norred',16...
数据库操作教程 2022-09-23 17:34:11 -
EXEC(EXECUTE)函数访问INSERTED或DELETED的内部临时触发表
刚开始时,这个表的字段很少(10个以内),前开发者把这个表的所有存储过程与触发器以及表函数全是写死了。用户每添加一些字段,都需要手动去更改这些存储过程与触发器以及表函数...
数据库操作教程 2022-09-23 17:30:05 -
实例学习SQL的Select命令
-1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,--显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。select emp_no ,emp_name ,dept ,isnull(convert(char(10),birthday,120),'日期不详') birthdayfrom employeeorder by dept --2、查找与喻自强在同一个单位的员工姓名、性别、部门和职称select emp_no,emp_name,dept,titlefrom employeewhere emp_name<>'喻自强' and dept in(select dept from employeewhere emp_name='喻自强')--3、按部门进行汇总,统计每个部门的总工资select dept,sum(salary)from emplo...
数据库操作教程 2022-09-23 17:27:21