标签: sql-server-2005

SQL触发器触发但未插入原始值

我正在将我的数据库从太平洋时间的日期时间转换为UTC,但不会同时更改所有代码.

我正在尝试编写一个触发器,它将更新在任一列中输入的时间并转换它们并将它们插入另一列.

防爆.如果我在OriginalTime列中插入太平洋时间,它应该将时间转换为UTC并使用UTC时间更新NewTime列.相反,如果我在NewTime中插入/更新值,它应该将时间转换回Pacific并将其放入OriginalTime中.

我是不是错误地循环了什么东西?

ALTER TRIGGER tr_Calls_CreateDate ON Calls
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON

DECLARE
    @CallId INT,
    @CreateDate DATETIME,
    @CreateDateUTC DATETIME

--Create cursor
DECLARE CreateDate_Cursor CURSOR LOCAL FOR
    SELECT CallId, CreateDate, CreateDateUTC FROM Inserted

OPEN CreateDate_Cursor;

-- Get First Row
FETCH NEXT FROM CreateDate_Cursor INTO @CallId, @CreateDate, @CreateDateUTC;

WHILE @@FETCH_STATUS = 0
BEGIN
    IF UPDATE ([CreateDate])
    BEGIN
        UPDATE Calls
        SET CreateDateUTC = dbo.ConvertPacificTimeToUTC(@CreateDate)
        WHERE CallId = @CallId
    END

    IF UPDATE ([CreateDateUTC])
    BEGIN
        UPDATE Calls
        SET CreateDate = …
Run Code Online (Sandbox Code Playgroud)

sql triggers sql-server-2005

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

从where子句中的case语句返回条件

通过搜索多个SO线程,我无法编写一个在where子句中返回适当条件的查询.例如,我有列Col1,它是int一个变量,var1就像varchar现在我在查询下面使用的那样,但它不起作用.

Where CASE WHEN var1 = '1' THEN (Col1 = 1)  
WHEN var1 = '2' THEN (Col1 = 2)  
ELSE AND (1= 1) 
END
Run Code Online (Sandbox Code Playgroud)

它给了我syntax error near '='.

编辑:

如果我想要条件如何

Col1 IN(condtions ....)

sql sql-server sql-server-2005

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

从Select Query修改SQL结果

我想获取以下查询的结果并执行更新到NAME_UD_AFFILIATIONS并将Member_Status字段设置为N.

我正在使用SQL Server Management Studio 2005 Ver.Windows 7上的9.0

SELECT *
FROM NAME
INNER JOIN Name_UD_Affiliations ON NAME.ID=Name_UD_Affiliations.ID
WHERE 
NAME_UD_AFFILIATIONS.Member_Status='R' and 
Name.Join_Date > '2012-9-1' and 
Name.Paid_Thru > '2013-09-01'
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2005

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

如何将0的计数显示为NULL

我正在制作一个程序来检查数据库中15个信用卡读卡器的交易.该计划的目的是检查读者在预定日期范围内的销售情况,以确保我们没有机械问题.一般来说,如果读者没有在预定日期范围内记录销售,则应检查读者的操作.问题是,因为我"计算"交易数量,它会出现"0"而不是NULL,我只想收到一封电子邮件,如果没有任何交易......我该如何更改如果是这样,从"0"计数到NULL?我的查询如下:

SELECT        COUNT(sTerminal) AS Terminal
FROM            CC
WHERE        (dtCreated BETWEEN @startdate AND @enddate) AND (sTerminal = 'Swiper 1')
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005

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

如何仅在SQL Server表中设置日期?

我使用datatime数据类型在数据库中设置日期但它提供了完整的数据时间和小时和分钟我想要设置的日期格式为dd-mm-yyyy

c# asp.net-mvc sql-server-2005

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

如何将垂直数据透视到具有可变行长度的水平数据SQL?

好的,我有下表.

Name    ID  Website

Aaron | 2305 |  CoolSave1


Aaron | 8464 |  DiscoWorld1


Adriana |   2956 |  NewCin1


Adriana |   5991 |  NewCin2


Adriana | 4563  NewCin3
Run Code Online (Sandbox Code Playgroud)

我想将其转换为以下方式.

Adriana  |  2956 |  NewCin1 |   5991 |  NewCin2 | 4563  | NewCin3


Aaron | 2305 | CoolSave1 |  8464 |  DiscoWorld | NULL | NULL    
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在尝试从第一个表中获取名字,并使用与该名称关联的所有ID /网站创建一行.问题是,有可变数量的网站可能与每个名称相关联.为了解决这个问题,我想制作一个表格,其中字段数等于最大行项目,然后对于后续的行项目,插入一个没有足够数据的NULL.

sql pivot sql-server-2005 unpivot

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

Microsoft SQL Server 2005查询字符串:<''

我有一个Microsoft SQL表,tbl其中包含以下记录:

clmn1 (smallint NOT NULL) = '2012'
clmn2 (char (10) NOT NULL) = '620100' 
clmn3 (char (1) NOT NULL) = ''
Run Code Online (Sandbox Code Playgroud)

当我执行以下查询时:

select * 
from tbl with (rowlock)  
where clmn1 = 2012 and clmn2 = '620100' and clmn3 <= ' '
Run Code Online (Sandbox Code Playgroud)

然后找到上面的行,这是正确的.

但是在执行以下查询时:

select * 
from tbl with (rowlock)  
where clmn1 = 2012 and clmn2 = '620100' and clmn3 < ' '
Run Code Online (Sandbox Code Playgroud)

然后它找不到任何不正常的东西.因为clmn3是空的('').'' < ' ' = true.

必须使用这种2 sql查询格式,因为我们正在使用Xisam将自己的sql查询转换为上述sql查询格式.

sql sql-server sql-server-2005

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

为什么sql中的max函数返回多个值

我想展示薪水最高的球员.

select  max(Salary) as highest_salary, p.[Last name]
from tbl_PlayersTable as p, tbl_team as t
where p.Team = t.TeamID
and TeamID = 1000
Group by p.[Last name]
Run Code Online (Sandbox Code Playgroud)

输出是:

highest_salary  Last Name
   8000          Bosh
   7000          Wade
   6000          James
Run Code Online (Sandbox Code Playgroud)

我只想表现出来(因为他是薪水最高的球员,因此他有8000名波什).

sql-server sql-server-2005

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

无法检测存储过程中的错误

我是存储过程的新手.

我写了以下存储过程:

create proc sp_TaxBrock
as
BEGIN
   Declare @intTax int,@intBrockrage int,@sum int
   set @intTax = (select Tax from partyRegister where partyCode = '0L036')
   set @intBrockrage = (select brockrage from partyRegister where partyCode = '0L036')

   set @sum = @intTax+@intBrockrage

   select @sum
   print @sum
   /*print @intTax+@intBrockrage;*/
go
Run Code Online (Sandbox Code Playgroud)

它导致此错误:

消息102,级别15,状态1,过程sp_TaxBrock,第12行
'@sum'附近的语法不正确.

无法找到错误.

我尝试;在不同位置添加分号(),但错误仍然相同.

请帮我.

sql sql-server stored-procedures sql-server-2005

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

如何从其他人隐藏Sql Server表中的密码

我有一个包含密码的列.我想做的只是用标准密码字符(*)掩盖密码或者只是隐藏...

提前致谢....

sql sql-server-2005 sql-server-2008

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