标签: t-sql

Microsoft Access SQL查询

有人可以帮我解决一下问题吗?在Microsoft SQL Server中,我有以下查询,执行正常:

SELECT * FROM ControlPoint
INNER JOIN Project ON ControlPoint.ProjectID = Project.ProjectID
INNER JOIN Site ON Site.SiteID = Project.SiteID
WHERE Project.ProjectName LIKE '%Flood%'
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试在Microsoft Access上执行此操作时,它会给我一些语法错误.自从我使用Access以来,它一直是永远的,但如果我没记错,我认为连接需要在括号中.任何帮助都会有用!

sql t-sql sql-server ms-access

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

循环中的MS SQL更新

我试图实现这样的事情:

DECLARE @id int
declare @cont varchar(max)
declare @temp varchar(max)
DECLARE curs CURSOR FOR SELECT id, [content] FROM [dbo].[Contents]

OPEN curs

FETCH NEXT FROM curs into @id, @cont
WHILE @@FETCH_STATUS = 0
   BEGIN
      SET @temp = replace(@cont, @param_ReplaceThis, @param_WithReplacement)

      update [dbo].[Contents]
         set [Content] = @temp
        where id = @id;

      FETCH NEXT FROM curs into @id, @cont;
   END;
CLOSE curs;
DEALLOCATE curs;
Run Code Online (Sandbox Code Playgroud)

但我总是得到错误消息,它不允许在函数中使用'UPDATE'...我只是认为这些东西在Oracle上正常工作...

t-sql sql-server sql-server-2005

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

TSQL:返回具有最早日期的行

给定了两个名为"table1"和"table1_hist"的表,结构上类似于:

TABLE1
id  status  date_this_status
1   open    2008-12-12
2   closed  2009-01-01
3   pending 2009-05-05
4   pending 2009-05-06
5   open    2009-06-01


TABLE1_hist
id  status  date_this_status
2   open    2008-12-24
2   pending 2008-12-26
3   open    2009-04-24
4   open    2009-05-04
Run Code Online (Sandbox Code Playgroud)

如果table1是当前状态而table1_hist是table1的历史表,那么如何为每个具有最早日期的id返回行.换句话说,对于每个id,我需要知道它的最早状态和日期.

EXAMPLE:

For id 1 earliest status and date is open and 2008-12-12.
For id 2 earliest status and date is open and 2008-12-24.
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用MIN(日期时间),工会,动态SQL等等.我今天刚刚到达tsql编写器块并且我被卡住了.

编辑补充: 呃.这是针对SQL2000数据库的,所以Alex Martelli的答案是行不通的.直到SQL2005才引入ROW_NUMBER.

sql t-sql

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

如何在SQL Server 2008中的关系范围中指定列是唯一的?

通过一个例子更容易.我有两个表:书籍和章节.两者都有Title和Id列.章节还有一个Book列,它是Books.Id的外键.Books.Title是独一无二的(我不想要两本同名书籍).

现在我的问题是定义Chapter.Title唯一性.只要Books.Id是相同的,我希望它是独一无二的.因此,一本书可能没有两章具有相同的标题,但两章不同的书可能在章节中具有相同的标题.

这可能在SQL Server 2008上吗?怎么样?

sql t-sql sql-server constraints sql-server-2008

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

识别身份栏?

我发现如何使用此查询确定哪些列是给定表的主键列:

 SELECT CONSTRAINT_NAME, COLUMN_NAME
 FROM
 INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
 WHERE TABLE_NAME='tablename_here' AND
 CONSTRAINT_NAME LIKE 'PK_%'
Run Code Online (Sandbox Code Playgroud)

我可以通过使用此查询找到身份种子和增量:

SELECT IDENT_SEED('tablename_here'), IDENT_INCR('tablename_here')
Run Code Online (Sandbox Code Playgroud)

我无法使用约束信息,因为主键约束可以跨多个列.我似乎无法找到任何Transact SQL函数来提供我的身份信息.

有人可以帮我理解如何找到身份信息吗?

我正在使用SQL Server 2000.

t-sql sql-server identity

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

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

我们的原始数据库为人名命名为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
查看次数

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
查看次数

检查除count(*)以外的数据库表中的记录数

我想检查表中是否有任何记录用于某个条目.我曾经COUNT(*)检查过记录的数量并让它发挥作用.但是,当条目的记录数非常高时,我的页面加载速度很慢.

我想COUNT(*)是导致问题,但如何在不使用它的情况下检查记录是否存在?我只想检查条目是否存在任何记录,然后执行一些代码.请帮我找到替代解决方案.

谢谢你的帮助.

sql t-sql sql-server

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

SQL Server中的DateDiff请求帮助

我正在使用SQL Server 2008.我有一个表有一个名为CreateTime的日期时间类型列.我需要从这个表中选择CreateTime超过3天的所有记录,距离当前时间(UTC时间)半小时.我正在使用T-SQL存储过程.

BTW:CreateTime列是过去一段时间.

我花了很多时间来学习和搜索MSDN for DateDiff的帮助,但无法弄清楚.有人能给我看样品吗?

乔治,提前谢谢

sql t-sql sql-server stored-procedures sql-server-2008

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

触发器在周期内触发

我可以每隔x小时制作一次触发器吗?

t-sql triggers

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