Tag: tsql

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

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

计算两个date之间的工作日

如何计算SQL Server中两个date之间的工作天数? 星期一到星期五,它必须是T-SQL。

接受多个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 9的表中。 文本包括一个单引号。 我如何逃避? 我试过使用两个单引号,但它给我一些错误。 例如。 insert into my_table values('hi, my name''s tim.');

在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”附近的语法不正确。 这里有什么问题?

只有插入一行,如果它不在那里

我一直使用类似于以下的东西来实现它: INSERT INTO TheTable SELECT @primaryKey, @value1, @value2 WHERE NOT EXISTS (SELECT NULL FROM TheTable WHERE PrimaryKey = @primaryKey) …但是一旦发生负载,就会发生主键违例。 这是根本插入这张桌子的唯一声明。 那么这是否意味着上述说法不是primefaces的? 问题是这几乎不可能随意重新创build。 也许我可以把它改成如下的东西: INSERT INTO TheTable WITH (HOLDLOCK, UPDLOCK, ROWLOCK) SELECT @primaryKey, @value1, @value2 WHERE NOT EXISTS (SELECT NULL FROM TheTable WITH (HOLDLOCK, UPDLOCK, ROWLOCK) WHERE PrimaryKey = @primaryKey) 虽然,也许我正在使用错误的锁或使用太多的锁或什么的。 我已经看到了stackoverflow.com上的其他问题,其中答案是build议“IF(SELECT COUNT(*)… INSERT”等,但我总是在(也许是不正确的)假设一个单一的SQL语句将primefaces。 有没有人有任何想法?

在一个SQL查询中插入多行?

我有多组数据立即插入,说4行。 我的表有三列: Person , Id和Office 。 INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office"); INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office"); INSERT INTO MyTable VALUES ("Billy", 125, "London Office"); INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office"); 我可以在一个SQL语句中插入所有4行吗?

如何将数组传递到SQL Server存储过程

如何将数组传递到SQL Server存储过程? 例如,我有一个雇员名单。 我想用这个列表作为一个表,并与另一个表join。 但是,员工名单应该作为C#的parameter passing。

我可以用逗号分隔多列成一列吗?

我试图在我的SQL Server数据库中合并这样的东西: [TicketID],[Person] T0001 Alice T0001 Bob T0002凯瑟琳 T0002道格 T0003伊莱恩 进入这个: [TicketID],[人物] T0001 Alice,Bob T0002凯瑟琳,道格 T0003伊莱恩 我需要在SQL Server和Oracle中都这样做。 我已经findMySQL的函数GROUP_CONCAT ,这正是我在这里所需要的,但MySQL不是这里的一个选项。 编辑:testing台: DECLARE @Tickets TABLE ( [TicketID] char(5) NOT NULL, [Person] nvarchar(15) NOT NULL ) INSERT INTO @Tickets VALUES ('T0001', 'Alice'), ('T0001', 'Bob'), ('T0002', 'Catherine'), ('T0002', 'Doug'), ('T0003', 'Elaine') SELECT * FROM @Tickets

如何在SQL SELECT中执行IF … THEN?

如何在SQL SELECT语句中执行IF … THEN? 例如: SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product