我有一些脏的资源使用记录,t_resourcetable其中看起来像这样
resNo subres startdate enddate 1 2 2012-01-02 22:03:00.000 2012-01-03 00:00:00.000 1 2 2012-01-03 00:00:00.000 2012-01-04 00:00:00.000 1 2 2012-01-04 00:00:00.000 2012-01-04 16:23:00.000 1 3 2012-01-06 16:23:00.000 2012-01-06 22:23:00.000 2 2 2012-01-04 05:23:00.000 2012-01-06 16:23:00.000
我需要以这种方式合并那些脏行
resNo subres startdate enddate 1 2 2012-01-02 22:03:00.000 2012-01-04 16:23:00.000 1 3 2012-01-06 16:23:00.000 2012-01-06 22:23:00.000 2 2 2012-01-04 05:23:00.000 2012-01-06 16:23:00.000
这应该更新到同一个表.我有超过40k行,所以不能使用游标.请通过更优化的sql语句帮助我清理它.
提供的解决方案不会遇到类似的情况
resNo subres startdate enddate 1 2 2012-01-02 22:03:00.000 2012-01-03 00:00:00.000 1 2 2012-01-03 00:00:00.000 2012-01-04 00:00:00.000 1 2 …
我在SQL Server中有这样的表:
varID(PK) dataID(PK) is_used
A 1 0
B 1 0
Run Code Online (Sandbox Code Playgroud)
然后,如果varID/dataID组合存在,我正在加载数据以将is_used更新为1 ,否则添加它.
所以我必须插入/更新这些varID/dataID组合.
varID(PK) dataID(PK)
B 1
C 1
Run Code Online (Sandbox Code Playgroud)
所以更新的表格如下所示:
varID(PK) dataID(PK) is_used
A 1 0
B 1 1
C 1 1
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?我将在存储过程中执行此操作.
输入字符串的格式不正确.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.FormatException:输入字符串的格式不正确.
来源错误:
第30行:lbl_userName.Text = objReader.Item(0)&""&objReader.Item(1)
第31行:lbl_resumeHead.Text = objReader.Item(3)
第32行:lbl_experience.Text = Convert.ToInt32(objReader.Item (4))
如何显示Integer表中的值.
简单查询:
UPDATE [WebERP].[dbo].[Users]
SET
[ActiveDirectoryUser] = null
WHERE ActiveDirectoryUser='xxx\royin'
Run Code Online (Sandbox Code Playgroud)
错误:
消息512,级别16,状态1,过程Users_Update,行17
子查询返回多个值.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.该语句已终止.
我想问题出在这里:

它把它当作回车.
(如果我改变\r到\b它的确定.)
我该如何解决?
我的SQL Server表结构是:
BranchName
BranchManagerName
Address
Zip Info
PhoneNo
FaxNo
Email
Status
CreatedOn
Run Code Online (Sandbox Code Playgroud)
现在,我尝试通过值Zip Info列一样State=XXXX,city=YYYY,Zip=123三个值.
我需要这三个值(State,City,Zip)存储在sql表格中的Zip Info格式state,city-Zip(xxxx,yyyy-123)列中.
如何在SQL Server 2005中编写插入查询?
你能建议我改进下面的Queru Please.
ALTER FUNCTION GetTemplate_Lookup_id(@pid int)
RETURNS INT
AS
BEGIN
DECLARE @Return int
SELECT @Return= CASE @pid
-- SOME OTHER Comment
WHEN 208 THEN 4
WHEN 283 THEN 4
WHEN 402 THEN 4
WHEN 42 THEN 4
--SOME OTHER Comment
WHEN 211 THEN 3
WHEN 286 THEN 3
WHEN 399 THEN 3
WHEN 45 THEN 3
--SOME OTHER Comment
WHEN 209 THEN 1
WHEN 284 THEN 1
WHEN 397 THEN 1
WHEN 43 THEN 1
--SOME Other Comment
WHEN 210 …Run Code Online (Sandbox Code Playgroud) 我试着检查用户是否存在.我尝试:
public static bool GetUser(string tblName, string UserName,string Password,string Usertype)
{
try
{
using (SqlConnection con = Connection.GetConnection())
{
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "select count(UserName) from " + tblName + " where Password=" + Password + " and usertype=" + Usertype + " and username="+ UserName + "";
object obj = cmd.ExecuteScalar();
if (obj != null)
return true;
return false;
}
}
}
catch (Exception ex)
{
throw ex;
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用此方法时出现以下错误.

连接成功建立,我这样称呼这个方法.
bool Check = …Run Code Online (Sandbox Code Playgroud) 场景:
具有时间戳字段的大量记录(2百万)的日志表.除了ID作为主键之外没有索引,并且索引(或任何其他持久对象)的创建是不可能的
我想从昨天开始选择所有记录.
我知道有几种方法可以做到这一点,我只想对"最好"的方式发表看法,而且最好的意思是最快.
这里的诀窍是时间戳的"时间",因为如果现在是上午11点,我会做类似的事情:
where modifiedDate between dateadd(dd,-1,getdate()) and getdate()
Run Code Online (Sandbox Code Playgroud)
我只从昨天11点获得记录,并将从今天获得数据
它的sql 2005所以没有"Date"数据类型
我正在写入将记录插入Audit表格的触发器.
只要目标表中的数据发生更改,触发器就会将旧值,新值更新到审计表
此外,还有名为Transaction和的列Transaction_Status
Transaction列定义事务的类型.可以INSERT,UPDATE或DELETE.
Transaction_Status列表示SUCCESS或FAILURE
怎么做到这一点?
我的触发器:
Alter Trigger TR_test
ON subscribers
FOR UPDATE
AS BEGIN
DECLARE @OldValue xml,@NewValue xml, @changedby varchar(50), @ReferenceId int
-----------------------------------------------------------------------------
SELECT @OldValue=b.username, @NewValue=a.username,
@ReferenceId = a.user_id, @changedby = a.modified_by
FROM inserted a, deleted b;
-----------------------------------------------------------------------------
INSERT INTO [dbo].[audit_log]
([old_value],[new_value],[module],[reference_id],[transaction]
,[transaction_status],[stack_trace],[modified_on],[modified_by])
VALUES
(@OldValue,@NewValue,'Subscriber',@ReferenceId,'_transaction',
'_transaction_status','_stack_trace',getdate(),555)
-----------------------------------------------------------------------------
END
Run Code Online (Sandbox Code Playgroud) 这个delow查询给我一些错误:
declare @date1 nvarchar(100) , @date2 nvarchar(100)
select @date1='2009-04-20', @date2='2009-05-20'
select top 10 t.VisitingCount , t.Page
from (
select Count(Page) as VisitingCount,Page
from scr_SecuristLog
where Date between @date1 and @date2
and [user] in (select USERNAME
from scr_CustomerAuthorities
)
group by Page order by [VisitingCount] desc
) t Run Code Online (Sandbox Code Playgroud)
错误:
除非还指定了TOP或FOR XML,否则ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效.
sql-server-2005 ×10
sql ×6
sql-server ×6
c# ×2
asp.net ×1
date ×1
insert ×1
performance ×1
t-sql ×1
time ×1
triggers ×1
vb.net ×1