标签: sql-server-2005

在考虑到性能的大表中进行迭代

如果我需要检查整个表以查看条件是否为真(例如,每个Ticket列都有一个带有特定后缀的ID).

性能明智的方法是什么?该表非常大,所以如果我遍历每一行,那么很多时候都会访问数据库.游标很慢,所以这不是一个优雅的解决方案

此外,对于将来,您始终可以验证您的参数,但过去情况并非如此.

c# sql performance sql-server-2005

0
推荐指数
1
解决办法
286
查看次数

关键字"table"附近的语法不正确

我收到此错误.我正在做的是尝试从一个表和一个数据库中获取数据并将其放入另一个数据库和表中.表格并不完全相同.我正在使用FETCH游标,因此我从db1表中获取第一行,然后将每个列值放入声明的变量中.然后我将insert语句运行到db2表中并获取下一个值.这一切似乎都正常工作,因为它运行良好,但最后我得到这个错误,

关键字"table"附近的语法不正确.

整个事务语句在TRY/CATCH中,在CATCH块中具有错误处理表达式.除此之外我不知道是什么原因引起的.请帮忙.

这是代码

  BEGIN

  -- SET NOCOUNT ON added to prevent extra result sets from
  -- interfering with SELECT statements.
  SET NOCOUNT ON;

  BEGIN TRY
    BEGIN TRANSACTION

    --TURN OFF ITENDITY COLUMNS
    SET IDENTITY_INSERT [DB].[dbo].[TEST] ON

    --TURN OFF ALL CONSTRAINTS 
    ALTER TABLE [DB].[dbo].[TEST] NOCHECK CONSTRAINT ALL

    -- Insert statements for procedure here
    DECLARE  @ID int,
             @DT datetime,
             @PID varchar(10),
             @AREA varchar(20)


    DECLARE FETCH_TEST CURSOR FOR

    SELECT [ID]
      ,[Date]
      ,[PID]
      ,[Area]

    FROM [OLDDB].[dbo].[TEST] as db1

    OPEN FETCH_TEST;

    FETCH NEXT FROM FETCH_TEST …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

0
推荐指数
1
解决办法
5826
查看次数

复制触发器大大减慢了数据库操作

我们的原始数据库为人名命名为first,middle,last.我们现在创建了名为firstname,middlename和lastname的字段.在我们进行此转换的过程中,我创建了一个触发器,可以在前一个字段收到更新或插入的任何时候将数据从第一个名称复制到第一个名称,从中间名到中间名,从最后一个到最后一个名称.问题是当我们批量上传文件到我们的数据库时,它会减慢一切,并可能导致其他事件超时.

以下是我的代码:

USE [Database]
GO
/****** Object:  Trigger [dbo].[CopyFirstName]    Script Date: 07/15/2009 08:35:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[CopyFirstName]

   ON  [dbo].[Patients]
   AFTER  INSERT,UPDATE
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

     IF UPDATE([First]) BEGIN
        SET NOCOUNT ON;
declare @ChangedField nvarchar(50);

  select @ChangedField = [First] from inserted 
  update dbo.Patients set FirstName  = @ChangedField where [First]  = @ChangedField


END
end
Run Code Online (Sandbox Code Playgroud)

这可以改进或以另一种方式完成吗?

sql t-sql sql-server-2005

0
推荐指数
1
解决办法
176
查看次数

查询仅获取重复数据

我有一张数据表

                   ID     Name

                    1      John
                    2      Robert
                    3      John
                    4      Sam
                    5      Jack
                    6      Sam

      Now i want ony the the duplicate names ony through query

         ie..,

                  Name

                  John
                  Sam
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005

0
推荐指数
2
解决办法
3796
查看次数

Sql server 2005日期函数

我想知道怎么做不.在其他表中使用getdate()和现有日期的天数,其中该表包含多个记录,即我想知道5天前或10天后或15天后发布的作业.我写过这样的查询

declare @q1 datetime;
select cdate from jobposting where cdate like (select cdate)
select datediff ( dd, q1, getdate())
Run Code Online (Sandbox Code Playgroud)

其中q1必须存储jobposting表中的所有日期,但我无法得到正确的答案.

或者我也尝试过

select datediff ( dd, select cdate from jobposting, getdate())
Run Code Online (Sandbox Code Playgroud)

在提前感谢你.

t-sql sql-server-2005 date

0
推荐指数
1
解决办法
556
查看次数

与大多数朋友一起前5名

嗨,我是SQL的新手,我正在试图弄清楚我将如何与大多数朋友(userId)获得前5名"乐队",这就是我所拥有的; 使用userId作为PK的usertbl然后是带有bandId作为PK的bandsTbl然后我有一个带有FK userId和bandId的表bandfriends.

bandfriends
userid | bandId
---------------
 1     | 1
 1     | 2
 1     | 3
Run Code Online (Sandbox Code Playgroud)

谢谢!

sql sql-server sql-server-2005

0
推荐指数
1
解决办法
494
查看次数

SQL Server:如果可能,以数字方式对列进行排序,否则为alpha

我正在使用来自外部源的表,并且无法"清理".有一个列nvarchar(20)并且在95%的时间内包含整数,但偶尔包含alpha.我想用类似的东西

select * from sch.tbl order by cast(shouldBeANumber as integer)
Run Code Online (Sandbox Code Playgroud)

但这会在奇数"3A"或"D"或"SUPERCEDED"值上引发错误.

有没有办法说"如果可以的话,将其排序为数字,否则只按字符串排序"?我知道那句话中有些邋,,但这基本上就是我想要的.

让我们说例如价值观

7,1,5A,SUPERCEDED,2,5,SECTION
Run Code Online (Sandbox Code Playgroud)

如果按以下任何一种方式对它们进行排序,我会很高兴(因为我真的只需要使用数字方法)

1,2,5,7,5A,SECTION,SUPERCEDED
1,2,5,5A,7,SECTION,SUPERCEDED
SECTION,SUPERCEDED,1,2,5,5A,7
5A,SECTION,SUPERCEDED,1,2,5,7
Run Code Online (Sandbox Code Playgroud)

sql-server sorting sql-server-2005

0
推荐指数
1
解决办法
4419
查看次数

TSQL - Ntext案例(SQL 2005)

SQL 2005中的存储过程 - 字段类型为NText

我编写一个存储过程来整理一些数据,然后再将其导入Microsoft CRM.到目前为止一切正常.

但是我需要在nText字段上做一个case语句.它需要针对大约3或4个文本值检查此字段并设置新字段(已在目标表中),该字段也是nText字段.

但是我收到错误"数据类型ntext和varchar在等于运算符不兼容.

我遇到过一些文章,但他们的解决方案看起来都非常复杂.

感谢您的高级帮助和建议.

t-sql stored-procedures sql-server-2005

0
推荐指数
1
解决办法
1173
查看次数

SQL Server用户与角色

在Sql Server 2005中,映射到活动目录组的数据库用户帐户与包含与成员相同的活动目录组的数据库角色之间有什么区别?

sql-server security sql-server-2005

0
推荐指数
1
解决办法
3295
查看次数

使用SELECT查询加速UPDATE

我有两张桌子:

  • 表1有Episode和Code,Episode为distinct.
  • 表2有Episode和Code,但Episode并不明显(表中的其他字段,与任务无关,使每一行都是唯一的).

我希望将每个剧集的表1的代码复制到表2.目前执行此操作的代码如下:

UPDATE Table2
SET Table2.Code = (SELECT TOP 1 Code FROM Table1 WHERE Episode = Table2.Episode)
Run Code Online (Sandbox Code Playgroud)

这需要数小时和数小时.(我不确切知道多少小时,因为我在大约20小时的时候取消了它.)他们大桌子,但肯定有更快的方法吗?

sql-server optimization sql-server-2005

0
推荐指数
1
解决办法
755
查看次数