标签: sql-server-2008

确定没有索引时添加的最新行

我想要检索最近添加的客户.我没有任何列存储添加行的日期/时间,而我的主键是Cust_ID,它不是IDENTITY列,也不一定按升序输入.

这是我的表,Customer并且想象已按此顺序添加了三行:

Cust_ID       Cust_Name      Cust_Age
-------------------------------------
2             C              23
6             A              25
3             B              22
Run Code Online (Sandbox Code Playgroud)

在上面的例子中我想得到最后一条记录(B).SQL Server中是否有任何预定义函数将返回表的最后一行(不依赖于升序)?

sql sql-server-2008

-1
推荐指数
1
解决办法
619
查看次数

SQL Query用于选择最大员工数量的分支的名称

我创建了一个名为Employee的表和名为Branch的表的数据库,Employee和Branch之间存在多对一的关系,我想进行查询以选择最大员工数量的分支

sql sql-server select sql-server-2008

-1
推荐指数
1
解决办法
2270
查看次数

使用存储过程时,对象引用未设置为对象的实例

这是一个.cs页面,我有两个函数要执行,但错误是函数没有被执行,如果我评论一个函数,另一个将工作,两个都没有执行,它给出一个常见的错误 object reference not set to an instance of an object

下面指定的是.cs页面.

Business bus = new Business();

try
{
    intResult = bus.create_user(ua);
}
catch (Exception ex)
{

}
finally
{
    bus = null;
}

int intres = 0;

try
{
    intres = bus.fninsertuser_role_map(ua, role, i);

}
catch (Exception ee)
{

}
finally
{
    bus = null;
}
Run Code Online (Sandbox Code Playgroud)

数据访问对象

public int create_user(UserMaster ua)
{
    //  Connection connect = new Connection();
    try
    {
        return cs.create_user(ua);

    }
    catch (Exception e)
    {
        throw e; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net sql-server-2008

-1
推荐指数
1
解决办法
2060
查看次数

在插入之前检查行是否存在的线程安全方法 - 我的代码是否正确?

我有一个表"INSERTIF",看起来像这样 -

id  value
S1  s1rocks
S2  s2rocks
S3  s3rocks
Run Code Online (Sandbox Code Playgroud)

在将一行插入此表之前,我想检查给定的ID是否存在.如果它不存在,则插入.否则,只需更新值即可.我想以线程安全的方式做到这一点.你能告诉我我的代码是否正确吗?我尝试了它,它的工作原理.但是,我想确保我没有遗漏任何性能问题.

编辑1-我想使用此代码一次插入数百万行.每个insert语句都包含在我显示的代码中.

编辑2 -我不想使用我的代码的UPDATE部分,只插入就足够了.

我不想使用MERGE,因为它只适用于SQL Server 2008及更高版本

谢谢.

代码 -

-- no check insert 
INSERT INTO INSERTIF(ID,VALUE)
VALUES('S1', 's1doesNOTrock')

--insert with checking 

begin tran /* default read committed isolation level is fine */
if not exists 
(select * from INSERTIF with (updlock, rowlock, holdlock) 
where ID = 'S1')
BEGIN
INSERT INTO INSERTIF(ID,VALUE)
VALUES('S1', 's1doesNOTrock')
END
else
/* update */
UPDATE INSERTIF
SET VALUE = 's1doesNOTrock'
WHERE ID = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005 sql-server-2008

-1
推荐指数
1
解决办法
2965
查看次数

如何在SQL Server 2008中使用案例

我想在SQL Server 2008中使用caseafter where子句; 我怎么能像它一样使用它

select * 
from MPR 
where
    case when @min >= 0 
           then MainComponent_Id = @mainc and SubComponent_Id = @subcomp 
           else MainComponent_Id = @mainc and SubComponent_Id = @subcomp and MinorComponent_Id = @minorc   
   end
end
Run Code Online (Sandbox Code Playgroud)

我正在使用存储过程,并且在我的存储过程中,如果minorcomponent_id值为0,那么它将添加1,否则其中2将起作用.

我曾经努力过,但在近乎情况下给出了错误.

怎么解决?

谢谢

sql stored-procedures sql-server-2008

-1
推荐指数
1
解决办法
115
查看次数

表值函数参数为varchar

我在SQL Server 2008数据库中有这个表值函数:

Create FUNCTION dbo.fct1(@Code varchar(10) )
RETURNS TABLE
AS
RETURN
(
   select CODE , NOM 
   from CODIF 
   where NUMERO = 'TP'
   and CODE =  @Code 
)
Run Code Online (Sandbox Code Playgroud)

当我从我的代码中调用它时:

 sSQL = "select * from fct1(" & Code & ")"
        Dim cmd As New SqlCommand(sSQL, Connection)
        If Connection.State <> ConnectionState.Open Then Connection.Open()
        Dim rd As SqlClient.SqlDataReader
        rd = cmd.ExecuteReader()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

列名无效:'EA2'

我需要知道 :

  • 这个错误的原因是什么?
  • 我该如何解决?

sql vb.net sql-server ado.net sql-server-2008

-1
推荐指数
1
解决办法
145
查看次数

所有行都标记有一组特定的值

更具体地说,对于问题和标签之间的多对多关系作为sql server表(包括帮助表QuestionsWithTags),需要一个query/sp,它返回所有具有以下标记集"t1","t2"的问题. "和"t3".鉴别器没有任何标签,但所有这些标签都不少于此.

提前致谢.

sql sql-server sql-server-2008 sql-server-2012

-1
推荐指数
1
解决办法
100
查看次数

sql server ...子查询返回的不止

id      record_name     record_value
-------------------------------------
1001    price1          12
1001    price2          1
1001    price3          8
1201    price1          18
1201    price2          2
1201    price3          6
1601    price1          12
1601    price2          8
1601    price3          8
Run Code Online (Sandbox Code Playgroud)

产量

id      price1      value       price2      value       price3      value
--------------------------------------------------------------------------
1001    price1      12          price2      1           price3      8
1201    price1      18          price2      2           price3      6
Run Code Online (Sandbox Code Playgroud)

我收到了错误

子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

我用过这个查询:

select distinct 
    a.id, 'Price1', 
    (select record_value 
     from table_name 
     where id = a.id and record_name = 'price1') as 'value1',
    'Price2', 
    (select record_value 
     from …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

-1
推荐指数
1
解决办法
76
查看次数

将varchar数据类型转换为datetime数据类型会导致SQL查询中出现超出范围的值

我有一个表格,其中包含存储日期和时间的列.我需要编写一个查询来只获取该列的日期,

SELECT CAST(CONVERT(VARCHAR, LoginTime, 101) AS datetime) FROM AuditTrail 
Run Code Online (Sandbox Code Playgroud)

但是,当我运行查询时,我收到此错误:

将varchar数据类型转换为日期时间数据类型会导致超出范围的值.

列中的数据是datetime ex:2012-06-18 12:08:04.000所以我只需要提取日期并删除[Logintime]列是数据时间格式的时间注释

你能帮我吗?

sql sql-server datetime sql-server-2008

-1
推荐指数
1
解决办法
13万
查看次数

我需要一个sql查询循环,日期减少一天,直到休息日期

我需要一个SQL查询循环,日期减少日期.

StartDate : 3/15/2015    [Date param] [MM/dd/yyyy]
EndDate   : 3/5/2015     [Date param]  
Operation : Decrement by a day toward EndDate
BreakDate : 3/10/2015    [Date param]
Run Code Online (Sandbox Code Playgroud)

当前日期(循环)应从开始日期到结束日期打印一天减量

如果到达中断日期,那么循环应该自行停止[内部循环]

以上输入的示例结果:

3/15/2015 
3/14/2015 
3/13/2015 
3/11/2015 
3/10/2015 
Run Code Online (Sandbox Code Playgroud)

请帮忙.

sql-server sql-server-2008

-1
推荐指数
1
解决办法
1677
查看次数