Tag: sql server

数据库无法打开,因为它是版本782.此服务器支持版本706和更早版本。 降级path不受支持

我使用SQL Server 2014 Express创build了一个示例数据库,并将其添加到我的Windows Form解决scheme中。 当双击打开我得到这个错误。 数据库无法打开,因为它是版本782.此服务器支持版本706和更早版本。 降级path不受支持 我正在使用Visual Studio 2013.我真的不明白,我正在使用两个最新版本的Microsoft产品,它们是不兼容的。 我错过了什么吗? 我怎样才能打开这个数据库?

将dynamicSQL的结果导入到sql-server的variables中

在存储过程中执行dynamicSQL: DECLARE @sqlCommand nvarchar(1000) DECLARE @city varchar(75) SET @city = 'London' SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city' EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75)', @city = @city 如何在SP中使用count(*)列值作为返回值?

使用entity framework更新主键值

我试图从entity framework内更新复合主键的一个值,我得到这个错误:“属性”CustomerID“是对象的关键信息的一部分,不能被修改。 这是我的代码: Dim customer As Customer = (From c In db.Customer Where c.CustomerID = "xxx" AndAlso c.SiteKey = siteKey).FirstOrDefault customer.CustomerID = "fasdfasdf" db.SaveChanges() 这似乎太简单了。 这是真的,你不能更新entity framework内的主键? 我找不到有关该主题的任何文档。 谢谢!

在存储过程参数列表中使用expression式的结果(例如函数调用)?

我试图编写一个存储过程来协助开发我们的数据库,但是我在使用它时遇到了一些麻烦。 例如: DECLARE @pID int; SET @pID = 1; EXEC WriteLog 'Component', 'Source', 'Could not find given id: ' + CAST(@pID AS varchar); 这会产生错误(在SQL Server 2005上) 消息102,级别15,状态1,行4在“+”附近有错误的语法。 有人可以向我解释为什么我的语法不正确,解决这个问题的正确方法?

如何从SQLdate时间格式获取时间?

我想只使用SQL Server 2005和2008的SQL查询从DateTime列中获取时间默认输出: AttDate == 2011-02-09 13:09:00 2011-02-09 14:10:00 我想这个输出: AttDate Time == 2011-02-09 13:09:00 13:09 2011-02-09 14:10:00 14:10

检索存储过程结果集的列定义

我正在使用SQL Server 2008中的存储过程,并且我已经了解到,为了处理数据,我必须INSERT INTO已预定义的临时表。 这很好,除了我怎么知道如何定义我的临时表,如果我不是编写存储过程,而不是列出它的定义和通过代码读取? 例如,对于`EXEC sp_stored_procedure',我的临时表是什么样的? 这是一个简单的存储过程,我可能会猜测数据types,但似乎必须有一种方法来读取执行过程返回的列的types和长度。

如何设置SQL Server连接string?

我正在开发一个简单的C#应用​​程序,我想知道这一点:当我连接我的应用程序到我的电脑上的SQL Server,我知道连接string(服务器名称,密码等),但是当我连接到另一个PC,SQL Server连接string是不同的。 SQL Server中是否有可以连接的默认帐户的常见帐户? 我听说过SQL Server中的sa帐户,什么是sa ?

身份列值突然跳到1001在SQL Server中

我正在使用Sql server 2012(Denali)。 我只是想知道为什么所有的标识列值从1001开始,依此类推。 在开始标识列从1,2开始,依此顺序添加标识,但突然跳到1001,1002以后,包含标识列的数据库中的所有表都跳转到1001,1002。 可能是什么原因。 请协助。

在SQL Server中从VARCHAR中删除非数字字符的最快方法

我正在编写一个导入实用程序,将电话号码用作导入中的唯一键。 我需要检查电话号码是否已经存在于我的数据库中。 问题是,在数据库中的电话号码可能有像破折号和括号,可能还有其他的东西。 我写了一个函数来删除这些东西,问题是,它是缓慢的,我的数据库中有成千上万的logging,同时导入了数千个logging,这个过程可能会慢得令人无法接受。 我已经把电话号码栏作为索引。 我尝试使用这个post的脚本: T-SQL trim(和其他非字母数字字符) 但是这并没有加速。 有没有更快的方法来删除非数字字符? 当10,000到100,000条logging必须进行比较时,这个function可以很好地发挥作用。 无论做什么都需要快速执行。 更新 鉴于人们的反应,我想我将不得不清理领域之前,我运行导入实用程序。 为了回答我在编写导入实用程序的问题,它是一个C#应用程序。 现在我正在比较BIGINT和BIGINT,不需要改变DB数据,而且我仍然用非常小的一组数据(约2000条logging)进行性能testing。 可以比较BIGINT和BIGINT会减慢速度吗? 我尽可能地优化了应用程序的代码端(删除了正则expression式,删除了不必要的数据库调用)。 尽pipe我不能将SQL隔离为问题的根源,但我依然觉得这是事实。

Microsoft SQL 2005中的自然(人类字母数字)sorting

我们有一个庞大的数据库,我们有DB侧分页。 这很快,在几秒钟内从数百万条logging中返回一行50页。 用户可以定义自己的sorting,基本上selectsorting的列。 列是dynamic的 – 一些有数字值,一些date和一些文本。 虽然大多数按预期的文本sorting愚蠢的方式。 那么,我说愚蠢,这是有道理的电脑,但挫败用户。 例如,通过stringloggingID进行sorting就像下面这样: rec1 rec10 rec14 rec2 rec20 rec3 rec4 …等等。 我希望这个考虑到这个数字,所以: rec1 rec2 rec3 rec4 rec10 rec14 rec20 我不能控制input(否则我只是在前面的000s格式),我不能依靠一种格式 – 有些是像“{代码} – {代码} – {rec id}”的东西。 我知道有几种方法可以在C#中执行此操作,但无法将所有logging拆分,因为这样会减慢速度。 有谁知道一种方法来快速应用自然sorting在Sql服务器? 我们正在使用: ROW_NUMBER() over (order by {field name} asc) 然后,我们正在分页。 我们可以添加触发器,虽然我们不会。 他们所有的input都是参数化的,但是我不能改变格式 – 如果他们input“rec2”和“rec10”,他们希望他们按照自然顺序返回。 我们有有效的用户input,针对不同的客户使用不同的格式。 可以去rec1,rec2,rec3,… rec100,rec101 而另一个可能去:grp1rec1,grp1rec2,… grp20rec300,grp20rec301 当我说我们不能控制input时,我的意思是我们不能强迫用户去改变这些标准 – […]