sqlserver

sqlserver空间数据 + c# 实现查询附近的设备

点点圈 提交于 2020-03-16 14:50:51
前言 一个小需求的实现,做一个备忘,个人理解,可能存在错误。 客户有很多设备,这些设备分散在不同的地方,现在需要通过小程序获取附近的(比如1000米)之类的设备列表,以距离排序 第一个想到的的是找百度/腾讯等地图,看有没有提供相应的开放api,先将我们的设备id以及对应的经纬度存储到地图中,再调用某个api,传入我当前坐标经纬度,然后返回附近的设备列表。最后没找到这个接口。应该是有,但是我没找到 第二个想能不能通过c#用啥算法实现,太菜搞不定 最后想到sqlserver有个空间数据的概念,最终勉强实现。 参考: 空间数据 (SQL Server) efcore中使用空间数据 概述 空间对象其实就是点、线、面之类的意思,我们希望对其进行一些操作,如:查询得到两个面之间的交集/差集/并集;以一个点为中心,设置半径得到一个面;查询两个点之间的距离;等等。这些操作如果我们自己用算法来实现想想有点怕。 c#提供了相应的库来表示这些空间对象,也提供了相应的方法来执行针对空间对象的操作 -> NetTopologySuite (从java的JTS移植来的)由于这次小需求只是依赖了数据库对空间数据的支持,所以没有详细研究 NetTopologySuite (资料少) sqlserver2008开始支持空间数据,它也提供了相应的类型来表示空间对象,也提供相应的函数来操作这些对象,当然其它数据也支持

SQLSERVER数据库经常置疑的原因

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-14 16:47:17
近段时间经常收到客户的求助电话,说他们的SQLSERVER业务数据库置疑了,因为系统不能使用,所以他们也不能加油正常营业 (我们是做加油站IC卡管理系统的)因为我们的系统损坏的话,加油站也不能加油,然后我们使用DBCC CHECKDB命令帮客户修复 数据库,客户的数据库一共置疑了两次 我们怀疑是不是他们的硬盘有问题,但是因为计算机是我们配给客户的是DELL商用机(2011年购买的),按道理质量应该不错的。 后来得知是他们油站停过电。我们大概知道置疑的原因了。 我们推测的原因: 停电之前有加油数据要插入数据库,因为SQLSERVER我们都是使用默认设置,什么都没有改,就是说数据插入数据库的时候事务还没有提交, SQLSERVER尝试回滚事务,但是计算机已经关机了,当计算机关机的时候回滚操作会被中断。但是这个回滚动作在下次计算机开机的时候 (即SQLSERVER重启的时候)回滚动作重新开始,由于SQLSERVER做每一个事务都是先写日志,再写入硬盘。 有可能由于内存中的数据丢失或者某些原因造成数据库不能回滚操作,那么整个数据库就置疑了 使用DBCC CHECKDB命令帮客户修复数据库 我们当时使用下面的sql脚本修复的 --修复数据库DBCC ALTER DATABASE test SET EMERGENCY ALTER DATABASE test SET SINGLE_USER

EF + SqlServer 表没有常规主键,无法更新 EntitySet

坚强是说给别人听的谎言 提交于 2020-03-14 15:20:56
错误描述: 1. U811.1 SqlServer数据库CurrentStock表,没有常规主键,对接系统时使用EF Code First提示: 生成过程中发现错误: 警告 6002: 表/视图“***.dbo.CurrentStock”未定义主键。已推断出该键,并将定义创建为只读的表/视图。 2. 调用EF处理材料出库时,提示: 无法更新 EntitySet“CurrentStock”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <UpdateFunction> 元素。 解决方法: 在edmx文件中找到CurrentStock的EntitySet节点,将节点内的DefiningQuery内容删除 来源: https://www.cnblogs.com/lnvc/p/12491959.html

什么是SQL注入及SQL注入工具

风流意气都作罢 提交于 2020-03-14 04:26:56
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。 但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。 根据国情,国内的网站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占L20%,其他的不足10%。在本文,我们从分入门、进阶至高级讲解一下ASP注入的方法及技巧,PHP注入的文章由NB联盟的另一位朋友zwell撰写,希望对安全工作者和程序员都有用处。了解ASP注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。大家准备好了吗?Let's Go... 入 门 篇 如果你以前没试过SQL注入的话,那么第一步先把IE菜单=

SQLServer动态掩码的详细介绍(代码示例)

久未见 提交于 2020-03-13 20:42:54
本篇文章给大家带来的内容是关于SQLServer动态掩码的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 动态数据掩码(DDM)是SQL Server 2016引入的一个新功能。目的就是限制没有权限的人去看到一些隐私信息。管理员用户能够决定哪些字段是需要被掩码的,那么如何在不改变应用程序代码的基础上掩码?还要保证无论如何访问数据,都是一致的。 这是Azure SQL数据库中首次引入的特性,它在云上接受用户的测试,并已迁移到本地产品。我想很多其他的新特性也会遵循这条方式(云--本地)。 需要注意的是与我之前的行级别数据安全一样,这些都是数据安全相关内容(推荐课程: MySQL教程 ) 列数据掩码 首先创建一个在一些数据上带有掩码版的表。我将在表定义中开始的一个字段中添加一个掩码。注意,这样做的方式是在数据类型之后使用“mask with()”格式,但是在NULL和默认选项之前,要在圆括号内包含FUNCTION = ",它指定了我们的函数。在引号内,我们指定掩码。CREATE TABLE语句如下 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE MyTable ( MySSN VARCHAR (10) MASKED WITH (FUNCTION = 'default()' ) DEFAULT ( '0000000000' )

mysql, sql sever , oracle

只谈情不闲聊 提交于 2020-03-13 07:24:09
一、sqlserver 优点: 易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等; 为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力; 缺点: 开放性 :SQL Server 只能windows上运行没有丝毫开放性操作系统系统稳定对数据库十分重要Windows9X系列产品偏重于桌面应用NT server只适合小型企业而且windows平台靠性安全性和伸缩性非常有限象unix样久经考验尤其处理大数据库; 伸缩性并行性 :SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限; 安全性:没有获得任何安全证书。 性能 :SQL Server 多用户时性能佳 ; 客户端支持及应用模式: 客户端支持及应用模式。只支持C/S模式,SQL Server C

sqlserver一个循环圆的算法

时间秒杀一切 提交于 2020-03-13 00:53:24
在sqlserver中没有数组的概率,我们就把数组的形式改成临时表的形式,临时表分为两列,第一列就是id,即为数组的下标;第二列为值,即为数组的值; 上sql ALTER PROCEDURE [dbo].[miao] @start datetime as begin set nocount on if exists(select * from sysobjects where name ='#temp_clss') --查找命令 drop table #temp_clss --删除 命令 if exists(select * from sysobjects where name ='#temp_cls_dat') --查找命令 drop table #temp_cls_dat --删除 命令 create table #temp_clss(id int,cls varchar(20)) insert into #temp_clss values (0,'中') insert into #temp_clss values (1,'中') insert into #temp_clss values (2,'中') insert into #temp_clss values (3,'早') insert into #temp_clss values (4,'早') insert into

推荐一个简单实用的java代码生成器

送分小仙女□ 提交于 2020-03-11 10:18:12
每次开发后台管理模块的时候,发现都是做的事情都是一样的,做的逻辑都是一样的,只是业务不一样而已,并且在创建文件上很浪费的时间。工欲善其事必先利其器,有一款趁手的工具可有效提高开发效率,推荐一个简单实用的在线java代码生成器。代码生成器只是xjr快速开发平台功能的一部分。 这款 代码生成器是 一款国内最新自主研发的JAVA代码自动生成器,目前来看这是一款十分赞的代码生成器,使用体验佳,基于拖拽思想,可视化操作,所见所得,支持mysql,oracle,sqlserver数据库;前后端分离,一键生成。这款新开发的代码生成器操作如下: 来源: oschina 链接: https://my.oschina.net/u/4430797/blog/3191490

MaxCompute问答整理之8月

好久不见. 提交于 2020-03-10 10:27:28
本文是基于对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文。希望对大家有所帮助。 问题一、通过数据源数据增量同步后,如何查看某一条数据具体被同步到MaxCompute中的时间? 不支持,查看不了,可以看表元数据的LastModifiedTime时间,但具体某个记录看不到时间。 问题二、开发的数据处理脚本能否在不同地区项目空间迁移? 跨项目克隆只能同账号同region,所以不同地区之间可以使用项目备份恢复来完成。 可参考官方文档操作: https://help.aliyun.com/document_detail/95940.html 温馨提示:此功能现阶段支持恢复文件大小必须是30M以下大小,后续会更新版本,请大家持续关注。 问题三、创建工作空间时,会碰到客户端显示project不存在,或者切换空间显示project不存在,这是什么原因? 一般这种问题,是因为开通账号之后,在建project时没有选择MaxCompute计算引擎服务导致的。 可以重新建project来解决问题。正确选择如下。 温馨提示:按量付费和包年包月选项是需要购买服务才可以。开发者版本可免费试用。 开发者版开通地址: https://promotion.aliyun.com/ntms/act/cloud/maxcdeveloperfbh.html 问题四

如何获得查询执行计划?

落花浮王杯 提交于 2020-03-08 18:01:53
在Microsoft SQL Server中,如何获取查询/存储过程的查询执行计划? #1楼 我最喜欢的用于获取和深入分析查询执行计划的工具是 SQL Sentry Plan Explorer 。 与SSMS相比,它对执行计划的详细分析和可视化更加友好,方便和全面。 这是一个示例屏幕快照,可让您大致了解该工具提供的功能: 这只是该工具中可用的视图之一。 注意应用程序窗口底部的一组选项卡,它使您可以获取不同类型的执行计划表示形式以及有用的其他信息。 此外,我还没有注意到其免费版的任何限制,这些限制会阻止其日常使用或迫使您最终购买Pro版本。 因此,如果您更喜欢免费版,那么没有什么可以阻止您这样做的。 更新:( 感谢 Martin Smith )Plan Explorer现在是免费的! 有关详细信息,请参见 http://www.sqlsentry.com/products/plan-explorer/sql-server-query-view 。 #2楼 可以通过 query_post_execution_showplan 事件从扩展事件会话中获取查询计划。 这是一个示例XEvent会话: /* Generated via "Query Detail Tracking" template. */ CREATE EVENT SESSION [GetExecutionPlan] ON