Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据sql中的条件更新多行_Sql_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

如何根据sql中的条件更新多行

如何根据sql中的条件更新多行,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我有一个数据库,假设我有一个名为Score的表,在Score中有两个字段 身份证 名字 现在,当我看到很多名字以-开头时,例如 -Karl-KSJ -Jhon-Kate -Xyz-Abc 现在,我想从所有行中删除前导的-,并对其进行更新,并保留名称不以-开头的所有行。如何在sql中实现这一点。请注意,我有数百万张唱片,因此性能将发挥重要作用 谢谢,像这样试试,它很简单,可能足够快: BEGIN TRAN UPDATE Score SET Name = RIGHT(Name, LE

我有一个数据库,假设我有一个名为
Score
的表,在
Score
中有两个字段

  • 身份证
  • 名字
  • 现在,当我看到很多名字以
    -
    开头时,例如

    -Karl-KSJ
    -Jhon-Kate
    -Xyz-Abc
    
    现在,我想从所有行中删除前导的
    -
    ,并对其进行更新,并保留名称不以
    -
    开头的所有行。如何在sql中实现这一点。请注意,我有数百万张唱片,因此性能将发挥重要作用


    谢谢,

    像这样试试,它很简单,可能足够快:

    BEGIN TRAN
    
    UPDATE  Score 
    SET     Name = RIGHT(Name, LEN(Name) - 1)
    WHERE   LEFT(Name, 1) = '-'
    
    ROLLBACK
    

    下面是一个

    像这样尝试一下,它很简单,可能足够快:

    BEGIN TRAN
    
    UPDATE  Score 
    SET     Name = RIGHT(Name, LEN(Name) - 1)
    WHERE   LEFT(Name, 1) = '-'
    
    ROLLBACK
    
    这是一个