我使用的是SQL Server 2014,并且有一个针对特定表(t1)运行的T-SQL查询。表t1包括名为HR_LeftDate、Payroll_LeftDate和Status的3列。 在该表中,有一些记录的HR_LeftDate和Payroll_LeftDate为'NULL‘,还有一些其他记录的值为空(对于这两列)。 我需要提取这些记录,我的T-SQL查询如下所示: SELECT *
FROM [t1]
WHERE ([HR_leftDate] IS NULL AND [Payroll_leftDate] IS NULL )
OR ([HR_leftDate] = '
我将一个主键列引入到一个还没有主键列的表中。在添加了一个默认值为0的普通字段Id (int)之后,我尝试使用以下update语句为每条记录创建唯一值:
update t1
set t1.id = (select count(*) from mytable t2 where t2.id <> t1.id)
from mytable t1
我希望为每一行执行子查询,因为我引用的是t1。每次执行子查询时,计数都应该减少一次,但这并不起作用。
结果是每条记录中的Id仍然为0。我以前在其他DBMS上成功地使用过这个。我在这里使用的是SQL Server 2008。
如何为每条记录生成唯一值并
我即将在我的网站上做一个简单的搜索设施,在那里用户将输入大约2-4个关键字,这将在我的MS SQL数据库中的一个表的两列中进行搜索。一列是名为title的varchar (50),另一列是名为description的varchar(2500)。任何时候都可能有大约20,000-30,000条记录可供搜索。
关键字需要返回“最佳匹配”-你知道你在像ebay这样的搜索页面上得到的那种返回最接近的匹配。我想这样做的方式似乎有点天真-我认为我可以将表中的所有30,000条记录读入并像这样进行对象:
public class SearchableObject
{
string Title {ge
我正在设计一个广泛使用Sever数据库的测试框架。我正在使用实体框架6 of .NET来表示祝贺。每次运行测试用例时,我都希望记录底层SQL查询。我使用LINQ查询数据库。
我很难记录SQL。LINQ to SQL生成一些未熟的SQL,需要通过填充我希望避免的参数将其转换为SQL。
是否有更好的方法来记录所有我可以直接输入到Server中的SQL,而不对查询进行任何更改?
我正在使用Microsoft SQL Server
我正在尝试使用下面的sql命令来获取First_Name "Nilsen“和"Ram”之间的记录。
select * from persons where First_Name between 'Nilsen' and 'Ram'
但我得到的输出是名字分别为"nilsen“和”ram“的两条记录;而不是这两条记录之间的记录。
在另一个命令中,我尝试对姓氏做类似的事情。
select * from persons where Last_Name between 'Johan'
Sql Server中的!=运算符和<>运算符有什么不同?
因为两者都用作not运算符。例如:
select * from TableName where ColName <> value
或
select * from TableName where ColName != value
返回相同的值(行)。
使用经典的asp,我尝试查询SQL Server数据库,如下所示:
strSQL = "select column_1, column_2, column_3, column_4 from someview " &_
"where RecordNo=" & i
set rs=conn.Execute(strSQL)
if not rs.eof then
A = rs("column_1")
B = rs("column_2")
C = rs("column_3&
如果我在像TEMP_TABLE (id int, text VARCHAR(max));这样的表中有一组列,并且我想将这个表的所有记录添加到另一个表中,那么考虑到此脚本也适用于SQL Server、Oracle、PostgrSQL,最佳解决方案是什么?
所以记录是这样的:
insert into TEMP_TABLE(1, 'aaa');
insert into TEMP_TABLE(2, 'bbb');
insert into TEMP_TABLE(3, 'ccc');
...
insert into TEMP_TABLE(10, 'z
我们有一个使用参数和CASE的存储过程,以便按不同的列对结果进行排序。如果我们从SSMS执行存储过程,则无论我们使用哪个版本的SQL Server (2005或2008),记录都将根据该参数进行排序。如果我们使用完全相同的参数值从应用程序调用它,那么它只能在SQL Server 2005中正确排序。我仔细检查了一下SQLDataReader,发现2008年的记录顺序有误。
我在.NET 2.0中也尝试过,以确保它与.NET框架版本4.0无关,并且我得到了相同的结果。
除了SQL Server版本之外,我所知道的这些服务器之间唯一的区别是安装了SQL2008的服务器是多处理器的。
这可能是什么原
我有一个表,它有一个名为status的列,类型为smallint并接受null。Sql server 2000。
我的数据在该字段中主要包含2,但也包含0和null。
当我这样做的时候
select *
from table
where status <> 2
我没有得到所有正确的记录(其中status为null或0)。你知道为什么会发生这种情况,以及如何纠正吗?难道<>不应该给我除2之外的所有东西吗?
在SQL Server2005中,可以创建持久化且定义为NOT NULL (不能包含NULL值)的计算列。第二个属性在使用像Linq2Sql这样的库时很重要,如果我们想要避免大量的手动工作来确保我们的代码'always‘列有一个值。
使用简单的SQL,这很简单:
ALTER TABLE Sales ADD Total AS (Price + Taxes) PERSISTED NOT NULL
在SQL Server Management studio的设计窗口中查看时,此列将正确显示为计算列,并且没有复选标记“allows”。然而,我在设计器中创建与此模式匹配的新列时遇到问题:公式输入