Tag: sql server

多个列的SQL MAX?

你如何返回每列最多几列的1个值: 表名 [Number, Date1, Date2, Date3, Cost] 我需要返回这样的东西: [Number, Most_Recent_Date, Cost] 查询?

表名称作为variables

我正在尝试执行此查询: declare @tablename varchar(50) set @tablename = 'test' select * from @tablename 这会产生以下错误: Msg 1087,Level 16,State 1,Line 5 必须声明表variables“@tablename”。 什么是dynamic填充表名称的正确方法?

我应该在T-SQL中使用!=还是<>不等于?

我看到SQL使用!=和<> 不等于 。 什么是首选语法,为什么? 我喜欢!= ,因为<>让我想起了Visual Basic。

接受多个Id值的T-SQL存储过程

有没有一个优雅的方式来处理传递一个ID列表作为存储过程的参数? 例如,我想要我的存储过程返回的部门1,2,5,7,20。 在过去,我已经通过逗号分隔的ID列表,像下面的代码,但是觉得真的很脏。 我认为SQL Server 2005是我唯一适用的限制。 create procedure getDepartments @DepartmentIds varchar(max) as declare @Sql varchar(max) select @Sql = 'select [Name] from Department where DepartmentId in (' + @DepartmentIds + ')' exec(@Sql)

在SQL Server中分页结果的最佳方法是什么?

如果您还想获得结果总数(在分页之前),在SQL Server 2000,2005,2008,2012中对结果进行分页的最佳方式(性能明智)是什么?

如何从SQL Server中的string中去除所有非字母字符?

你怎么能删除string中不是字母的所有字符? 那么非字母数字呢? 这是否必须是一个自定义的function,还是有更多一般化的解决scheme?

如何在SQL Server中转义单引号?

我试图插入一些文本数据到SQL Server 9的表中。 文本包括一个单引号。 我如何逃避? 我试过使用两个单引号,但它给我一些错误。 例如。 insert into my_table values('hi, my name''s tim.');

如何在C#程序中执行存储过程

我想从C#程序执行这个存储过程。 我已经将下面的存储过程写入SqlServer查询窗口并将其保存为stored1: use master go create procedure dbo.test as DECLARE @command as varchar(1000), @i int SET @i = 0 WHILE @i < 5 BEGIN Print 'I VALUE ' +CONVERT(varchar(20),@i) EXEC(@command) SET @i = @i + 1 END 编辑: using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace AutomationApp { class Program { public […]

乐观vs.悲观locking

我理解乐观和悲观locking之间的区别。 现在有人可以向我解释什么时候我会使用任何一个? 而这个问题的答案会根据我是否使用存储过程来执行查询而发生变化吗? *但只是为了检查,乐观意味着“不要在阅读时locking桌子”,而悲观的意思是“在阅读时locking桌子”。

在SQL Server中使用JOIN更新表?

我想更新表中的一个列,使其他表上的连接,例如: UPDATE table1 a INNER JOIN table2 b ON a.commonfield = b.[common field] SET a.CalculatedColumn= b.[Calculated Column] WHERE b.[common field]= a.commonfield AND a.BatchNO = '110' 但是这是抱怨: Msg 170,Level 15,State 1,Line 2 第2行:“a”附近的语法不正确。 这里有什么问题?