Tag: sql server

还原没有事务日志的SQL Server数据库

给定一个SQL Server 2008的.bak文件,有没有办法从.bak文件中恢复数据库而没有事务日志? 我问的原因是这个数据库的事务日志文件的大小是巨大的 – 超过了我已经可用的磁盘空间。 我对事务日志没有兴趣,对任何未完成的事务没有兴趣,所以通常我只是在恢复数据库时将日志缩小到零。 但是当我没有足够的磁盘空间来创build日志时,这并没有帮助。 我需要的是一种告诉SQL Server只从.bak文件中恢复数据的方法,而不是事务日志。 有没有办法做到这一点? 请注意,我无法控制.bak文件的生成 – 它来自外部源。 所以在生成.bak文件之前缩小事务日志不是一个选项。

整数在SQL Server T-SQL中的最大值常量?

在T-SQL中是否有像在其他语言中提供数据types的最大和最小值范围的常量? 我有一个代码表,其中每行都有一个上限和下限范围列,我需要一个条目表示一个范围,其中上限是一个int可以容纳的最大值(有点像hackish infinity)。 我宁愿不要硬编码,而是使用像SET UpperRange = int.Max

你如何testing你的T-SQL?

你如何testing你的T-SQL? 你使用哪个库/工具? unit testing涵盖的代码百分比是多less?如何测量? 你如何决定首先进行unit testing的模块? 你认为你在unit testing线束上花费的时间和精力是否已经得到了回报? 如果你不使用unit testing,你能解释为什么不呢?

你为什么要把一个索引放在一个视图上?

Microsoft SQL Server允许您为视图添加索引,但为什么要这样做呢? 我的理解是,一个视图实际上只是一个子查询,即如果我说SELECT * FROM myView,我真的说SELECT * FROM(myView的查询) 看起来底层表上的索引似乎是最重要的索引。 那么为什么你要在视图上单独索引?

在Sql Server中计算

我试图执行下面的计算 样本数据: CREATE TABLE #Table1 ( rno int identity(1,1), ccp varchar(50), [col1] INT, [col2] INT, [col3] INT, col4 as [col2]/100.0 ); INSERT INTO #Table1 (ccp,[col1],[col2],[col3]) VALUES ('ccp1',15,10,1100), ('ccp1',20,10,1210), ('ccp1',30,10,1331), ('ccp2',10,15,900), ('ccp2',15,15,1000), ('ccp2',20,15,1010) +—–+——+——+——+——+———-+ | rno | ccp | col1 | col2 | col3 | col4 | +—–+——+——+——+——+———-+ | 1 | ccp1 | 15 | 10 […]

有没有一个重构SQL的工具,有点像SQL的ReSharper

我现在所追求的东西是相当基本的: 自动格式 检测未使用的variables variables命名约定检查 如果有一个工具可以处理更复杂的重构(比如重构数据库中的重构) ,我不会感到惊讶,但是我明白当前数据库结构和数据状态引入的复杂性可能会阻止其中的许多重构 。 我想我是在ReSQLer之后

如何抑制SQL Server中另一个存储过程调用的存储过程的SELECT输出?

我不是在说做一个“SET NOCOUNT OFF”。 但我有一个存储过程,我用它来插入一些表中的数据。 这个过程创build一个XML响应string,让我给你一个例子: CREATE PROCEDURE [dbo].[insertSomeData] (@myParam int) AS DECLARE @reply varchar(2048) … Do a bunch of inserts/updates… SET @reply = '<xml><big /><outputs /></xml>' SELECT @reply GO 所以我把一个使用这个SP的脚本放在一起,而xml的“输出”变得太多了(它已经崩溃了我的盒子一次)。 有没有办法抑制或redirect从此存储过程生成的输出? 我不认为修改这个存储过程是一个选项。 谢谢。 我想我应该澄清。 上面的这个SP被我编写的T-SQL Update脚本调用,要通过企业工作室pipe理器等来运行。 这不是我曾经写过的最优雅的SQL(一些psuedo-sql): WHILE unprocessedRecordsLeft BEGIN SELECT top 1 record from updateTable where Processed = 0 EXEC insertSomeData @param = record_From_UpdateTable […]

sql组通过与独特

当查询中没有完成聚合时,为什么有人会使用一个组而不使用一个组? 另外,有人知道在MySQL和SQL Server中,不同的性能考虑。 我猜SQL Server有一个更好的优化器,他们可能接近于同等的地位,但在MySQL中,我期望明显的性能优势。 我对dba的答案感兴趣。 编辑: 比尔的post很有趣,但不适用。 让我更具体的… select a, b, c from table x group by a, b,c 与 select distinct a,b,c from table x

SQL Server代理服务的凭据无效

我试图以pipe理员身份在本地计算机上安装SQL Server 2008开发服务器。 在安装期间,我收到这个错误,任何想法如何解决它?谢谢 [错误信息] 您为SQL Server代理服务提供的凭据是无效的。 要继续,请为SQL Server代理服务提供有效的帐户和密码。 [详细] Microsoft.SqlServer.Configuration.Agent.InputValidationException:您为SQL Server代理服务提供的凭据无效。 要继续,请为SQL Server代理服务提供有效的帐户和密码。

使用select语句传递表值函数中的参数

我创build了一个表返回值函数返回给我一个表。 以下是我的function的调用 SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006) 它的工作对我来说OK,现在我想在一个select语句中使用这个函数调用,所以我可以传递16这基本上是employeeIddynamic。 所以我决定使用内部连接与该函数返回的表。 喜欢这个 SELECT * FROM Employee as E INNER JOIN dbo.[StateFixedTaxesCalculation](3020,16,1,1006) as TC ON TC.EmployeeId=E.EmployeeId 但现在我怎么能通过16作为所有employeeId一个接一个的dynamic值。