寻找MSSQL新精彩:无重复可上(查找不重复mssql)
传的大文件
MSSQL(Microsoft SQL Server)是一款由微软公司开发的数据库管理系统,它不仅能够以数据库的方式存储和管理大量的数据,而且还可以处理上传大文件,这一特性显然为用户的工作提供了极大的便利。本文就利用MSSQL实现无重复可上传的大文件的方法作一介绍。
首先,要想使用MSSQL实现文件的上传,首先要搭建MSSQL环境,安装MSSQL,新建数据库,并为数据库分配权限,并且运行相应的存储过程。接下来,为了实现文件的无重复上传,需要先创建一张名为“ServerFile”的新表,表结构如下所示:
表名: ServerFile
字段名:UniqID(主键、varchar)
Params(nvarchar)
SavePath(nvarchar)
FileName(nvarchar)
FileSize(int)
CreateTime(datetime)
这里我们只需要实现重复文件无法上传,UniqID作为主键,使用“uniqueidentifier”类型,然后在存储过程中就可以很容易根据UniqID来判断文件是否存在,甚至可以设置UniqID的检索缩小检索范围,来提高检索文件的效率。
接下来,就可以编写一个存储过程来实现文件上传的功能了。假设表的名字为ServerFile,编写存储过程时可以参考以下代码实现:
CREATE PROCEDURE [dbo].[ServerFile_Upload]
@fileName nvarchar(1000),
@Params nvarchar(1000),
@SavePath nvarchar(1000),
@FileSize int
AS
BEGIN
IF NOT EXISTS
(SELECT TOP 1 1 FROM ServerFile WHERE
FileName = @fileName AND
Params = @Params AND
SavePath = @SavePath )
BEGIN
INSERT INTO ServerFile ( UniqID,
Params,
SavePath,
FileName,
FileSize,
CreateTime )
VALUES ( NewID(),
@Params,
@SavePath,
@fileName,
@FileSize,
getdate()
)
END
ELSE
BEGIN
SELECT 0
END
END
上面的代码中,首先会进行文件是否存在的查询,如果存在,则返回0表示不能上传,如果不存在,则使用NewID()函数自动产生一个唯一的UniqID,之后将文件信息插入到ServerFile表中,以实现不重复上传的功能。
综上所述,通过使用MSSQL,可以实现无重复上传大文件,这个功能不仅方便用户,而且可以防止文件污染问题,为用户的工作提供更好的支持。