摘要: 前段时间,曾经写过一个例子,http://www.cnblogs.com/insus/articles/1916558.html是使用OUTPUT来记录更新前后的值,现在可以使用SQL Server的触发器来实现。演示,代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--创建一个UPDATE触发器CREATETRIGGER[dbo].[tri_Member_Udate]ON[dbo].[Member]FORUPDATEASBEGIN--宣 阅读全文
posted @ 2010-12-27 19:18 Insus.NET 阅读(625) 评论(1) 推荐(2)
摘要: WHILE是SQL Server另一个基本流程控制元素,用于循环执行代码。WHILE后面的条件为TRUE时,循环执行指定的SQL语句或语句块,如果WHILE后的条件为FALSE或UNKNOWN时,循环终止。演示,更详细例子,请参阅http://www.cnblogs.com/insus/articles/1914346.html:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--宣告一个INT类型变量,并赋值DECLARE@FirstC 阅读全文
posted @ 2010-12-27 18:33 Insus.NET 阅读(388) 评论(1) 推荐(2)
摘要: IF...ELSE元素在SQL Server中,是用于控制代码程流(逻辑处理)。如果条件为TRUE,则执行指定的语句或语句块;如果条件为FALSE或UNKNOWN则执行指定的另外语句或语句块。ELSE部分是可选的。演示:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--判断存储过程是否存在IFOBJECT_ID('[dbo].[usp_Employee_Search]','u')ISNOTNULL--如果 阅读全文
posted @ 2010-12-27 18:08 Insus.NET 阅读(597) 评论(1) 推荐(2)
摘要: 不能在同一批处理中编译的语句,为了解决这个问题,需要在每个处理单元之间添加一个GO。如下:CREATE DEFAULT,CREATE RULE,CREATE FUNCTION,CREATE PROCEDURE,CREATE TRIGGER,CREATE SCHEMA,CREATE VIEW例子,可以参考:http://www.cnblogs.com/insus/articles/1917870.htmlIF语句之后添加一个GO命令,把IF与CREATE PROCEDURE分隔到两个不同的批处理执行。 阅读全文
posted @ 2010-12-27 17:38 Insus.NET 阅读(874) 评论(1) 推荐(2)
摘要: 当一个存储过程参数接收一个Array时,我们可以用下面方法来处理,可以很方便实现。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATEPROCEDURE[dbo].[usp_Prod_GetByType](@ArrayIDNVARCHAR(100))AS--处理传入参数DECLARE@ParamsNVARCHAR(100)=REPLACE(@ArrayID,',',''','' 阅读全文
posted @ 2010-12-27 15:35 Insus.NET 阅读(2291) 评论(1) 推荐(3)
摘要: SELECT INTO语句,创建一个目标表,把SELECT结果集插入至这个目标表中。这个目标表是在执行时产生,并非是在执行前产生,即是说不能向已经存的目标表插入数据。它会把来源表的基本结构进行复制。但不能复制约束,索引和触发器。演示,Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--判断目标表是否存在,存在首先DROP掉IFOBJECT_ID('[dbo].[TT]','u')ISNOTNULLDROPTAB 阅读全文
posted @ 2010-12-27 14:19 Insus.NET 阅读(422) 评论(1) 推荐(2)
摘要: INSERT SELECT语句是可以把SELECT查询返回结果集插入目标数据表中。演示,首先创建一个临时表,Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFOBJECT_ID('#t')ISNOTNULLDROPTABLE#tCREATETABLE#t([MemberId][int]NOTNULL,[Name][nvarchar](100)NOTNULL,[Job][bit]NULL)使用INSERT SELECT语法,C 阅读全文
posted @ 2010-12-27 13:44 Insus.NET 阅读(1538) 评论(1) 推荐(2)
摘要: INSERT EXEC语句可以把存储过程或动态SQL批处理返结果集插入目标数据表中,下面例子是以存储过程返回结果集插入一个表变量中,演示例子,首选创建一个存储过程,这个存储过程需要传入一个参数,是否在职的Member。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFOBJECT_ID('dbo.usp_Member_Job','p')ISNOTNULLDROPPROCEDUREdbo.usp_Membe 阅读全文
posted @ 2010-12-27 13:16 Insus.NET 阅读(1432) 评论(1) 推荐(2)
摘要: 把变量字段动态添加至数据表中,为了演示这个例子,首先创建一个临时表,这个临时表只产生一个IDENTITY字段,Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->BEGINIFOBJECT_ID('[dbo].[#DummyTable]')ISNOTNULLDROPTABLE[dbo].[#DummyTable]CREATETABLE[dbo].[#DummyTable]([ID]INTIDENTITYNOTNULL)END我们宣 阅读全文
posted @ 2010-12-27 10:56 Insus.NET 阅读(1391) 评论(1) 推荐(2)
摘要: 写存储过程,我们会经常需要动态创数据表,如临时表等。下面例子是使用Execute来创建一个数据表。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--宣告一个变量DECLARE@tableNameNVARCHAR(30)='DummyTableName'动态创建表,代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeH 阅读全文
posted @ 2010-12-27 10:26 Insus.NET 阅读(793) 评论(1) 推荐(2)