随笔分类 -  MS SQL Server

摘要: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 阅读(405) 评论(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 阅读(1450) 评论(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 阅读(1380) 评论(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 阅读(1364) 评论(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 阅读(777) 评论(1) 推荐(2) 编辑
摘要:SQL Server,可以使用SCOPE_IDENTITY方法取得最后一笔记录的Identity号码,但是如果想取得批量插入的IDENTITY号码,那得想些这个SCOPE_IDENTITY就有些困难了,只有把inserted虚拟表导入到一个真实存在的表,临时表或是表变量中,方可解决问题。下面代码,是return最后一笔的IDENTITY号码,Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->INSERTINTOdbo.MemberVALUES( 阅读全文
posted @ 2010-12-25 14:21 Insus.NET 阅读(1606) 评论(0) 推荐(1) 编辑
摘要:SQL Server 2008可以创自己的表类型,方便应用到重复使用的地方,这样就不必重复定义表代码。下面是定义表类型的例子,Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFTYPE_ID('dbo.MyReport')ISNOTNULLDROPTYPEdbo.MyReportCREATETYPEdbo.MyReportASTABLE([Id][int],[OldValue][decimal](18,6),[NewValu 阅读全文
posted @ 2010-12-25 11:22 Insus.NET 阅读(1938) 评论(1) 推荐(2) 编辑
摘要:参考前一个实例使用OUTPUT保存更新记录前后数据,改用一个表变量来实现。首先定义一个表变量:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->DECLARE@SalaryReportTABLE([MemberId][int],[Name][nvarchar](100),[OldSalary][decimal](18,6),[NewSalary][decimal](18,6))然后把更新OUTPUT结果INTO到这个表变量中:Code high 阅读全文
posted @ 2010-12-25 10:38 Insus.NET 阅读(1094) 评论(1) 推荐(2) 编辑
摘要:年底了,职员都有长薪金的机会,人事部需要做一份报表,就是显示薪金前后值的一份报表。为了实现这样的功能,使用SQL的OUTPUT功能,即可实现原薪金与新薪金比较的报表。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT[MemberId],[Name],[Salary]FROM[dbo].[Member]结果MemberId Name Salary1 Mr. John 2200.002 Mr. Joe 2500.00使用OUTPUT功 阅读全文
posted @ 2010-12-25 09:51 Insus.NET 阅读(641) 评论(0) 推荐(1) 编辑
摘要:网站搬迁之后,备份数据库的功能出错了,原因是原来数据库与网站同一台服务器,现在是数据库与网站分别在不同服务器,引起在备分时,找不到路径或是没有权限存储。最初版本的存储过程:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo].[usp_Backup_DataBase](@BackupDataBaseNamevarchar(1 阅读全文
posted @ 2010-12-24 18:13 Insus.NET 阅读(4154) 评论(0) 推荐(2) 编辑
摘要:以前实现备份文件管理,有一个删除功能,是使用asp.net来实现删除备份文件。这段时间改用在SQL Server存储过程去实现。您可以参考到这个存储过程完整代码。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[usp_DeleteFile]')ANDtypein(N'P',N&# 阅读全文
posted @ 2010-12-24 17:31 Insus.NET 阅读(461) 评论(0) 推荐(2) 编辑
摘要:SQL Server使用xp_fileexist扩展存储过程,可在判断文件是否在。在创建自定义函数时,因无法使用临时表,所以下例使用了一个表变量。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->DECLARE@OutInfoTABLE([FILE_EXISTS]INTNOTNULL,[FILE_IS_DIRECTORY]INTNOTNULL,[PARENT_DIRECTORY_EXISTS]INTNOTNULL)INSERTINTO@Ou 阅读全文
posted @ 2010-12-24 16:38 Insus.NET 阅读(717) 评论(0) 推荐(2) 编辑
摘要:使用System.IO名称空间下的DriveInfo类别,可以获取磁盘相关信息。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->privateDataTableGetDriveInfo(stringdriveName){//new一个实例表DataTabledataTable=newDataTable();DataColumndataColumn;//new一个字段dataColumn=newDataColumn();//字段存储的数据类 阅读全文
posted @ 2010-12-24 13:21 Insus.NET 阅读(727) 评论(1) 推荐(2) 编辑
摘要:下面这段SQL code是获取SQL Server默认的备份目录,创建一个用户自定义函数。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFOBJECT_ID('dbo.udf_SQLServerBackupDirectory')ISNOTNULLDROPFUNCTIONdbo.udf_SQLServerBackupDirectoryGOCREATEFUNCTIONdbo.udf_SQLServerBackupDirec 阅读全文
posted @ 2010-12-23 15:37 Insus.NET 阅读(1176) 评论(0) 推荐(1) 编辑
摘要:SQL Server的master数据库中有一个扩展存储过程xp_fixeddrives,可以获取硬盘分区与分区剩余容量,参考下面代码:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFOBJECT_ID('#TempDrive')ISNOTNULLDROPTABLE#TempDriveCREATETABLE#TempDrive([DriveName]NVARCHAR(10),[DriveFreeSpace]BIGINT 阅读全文
posted @ 2010-12-23 10:46 Insus.NET 阅读(468) 评论(0) 推荐(2) 编辑
摘要:开发过程中,需要用到26个字母的一个临时表,一开始想到的方法如下(SQL Server 2008 R2执行):代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->IFOBJECT_ID('#TempDriveInfo')ISNOTNULLDROPTABLE#TempDriveInfoCREATETABLE#TempDriveInfo([DriveInfoId]TINYINTIDENTITYPRIMARYKEYNOTNULL,[ 阅读全文
posted @ 2010-12-23 08:35 Insus.NET 阅读(1035) 评论(1) 推荐(2) 编辑
摘要:前段时间写了一些SQL语句或存储过程,可以参考此篇:http://www.cnblogs.com/insus/articles/1899336.html原本只是为了自己方便工作,但是用户永远满足不了,他们也有跟自己需求一样,只有写成一个类别,并在asp.net界面显示出来。Authorizations.cs 代码片断:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem;usingSystem.Collections.G 阅读全文
posted @ 2010-12-20 18:08 Insus.NET 阅读(737) 评论(1) 推荐(1) 编辑
摘要:做Syteline System维护,用户特多要求,今天需要为用户修改一个Material Transaction Report. 具体实现如下,可以参考:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATEPROCEDURE[dbo].[usp_SyteLine_GetMaterialTransactionsReport](@ConditionExpressionnvarchar(3000))ASDECLARE@sqlnvarc 阅读全文
posted @ 2010-12-08 18:50 Insus.NET 阅读(624) 评论(1) 推荐(1) 编辑
摘要:只显示on hand quantity and wharehouse而且quantity 大于零。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECTi.[item],i.[description],iw.[qty_on_hand],iw.[whse]FROM[dbo].[item]iINNERJOIN[dbo].[itemwhse]iwON(i.[item]=iw.[item])WHEREiw.[qty_on_hand]>0下 阅读全文
posted @ 2010-12-08 18:41 Insus.NET 阅读(489) 评论(0) 推荐(2) 编辑
摘要:在Syteline system中,默认Goods Receiving Note Report格式不适合自己需求,再加上添加了一些自定义字段,因此写了一个存储过程,能在SQL查询分析器得到需要结果。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATEPROCEDURE[dbo].[usp_SyteLine_GetGoodsReceivingNoteReport](@ConditionExpressionnvarchar(3000) 阅读全文
posted @ 2010-12-08 18:32 Insus.NET 阅读(409) 评论(0) 推荐(2) 编辑