关于SQL server 2008 存储过程里编写数据插入之前的时间条件问题,急急急!!! 40C

如题,现在我想给数据插入此table5表格之前,做一个时间段的条件,例如,今天是星期三,星期三的早上8点到晚上8点这个时间里,数据就往指定的字段插入做统计(数据插入和统计的代码已经编写好了,就是条件出了问题),然后晚上8点到第二天(星期四),早上8点,数据就往另一个指定字段插入,现在我写好了时间条件,但出了问题,就是如果当天的早8点到晚8点的话,数据的确是能插入到指定的字段,但如果碰到是跨天的时间,例如就是星期三的晚上8点跨到第二天星期四的早上8点这种情况的时候,数据就不会插入了。。。。。。我不知道是什么问题,本人实习生,小白一枚,求SQL server大神和专家急救!!非常急!!!!
加Q联系我:584958184

附上我的时间条件代码:
图片说明

图片说明

0

7个回答

IF OBJECT_ID ('dbo.varbin2hexstr') IS NOT NULL
DROP FUNCTION dbo.varbin2hexstr
GO
CREATE function varbin2hexstr(
@bin varbinary(8000)
)returns varchar(8000)
as
begin
declare @re varchar(8000),@i int
select @re='',@i=datalength(@bin)
while @i>0
select @re=substring('0123456789ABCDEF',substring(@bin,@i,1)/16+1,1)
+substring('0123456789ABCDEF',substring(@bin,@i,1)%16+1,1)
+@re
,@i=@i-1
-- return('0x'+@re)
return @re
end
GO

IF OBJECT_ID ('dbo.varbin2hexstr') IS NOT NULL
DROP FUNCTION dbo.varbin2hexstr
GO
CREATE function varbin2hexstr(
@bin varbinary(8000)
)returns varchar(8000)
as
begin
declare @re varchar(8000),@i int
select @re='',@i=datalength(@bin)
while @i>0
select @re=substring('0123456789ABCDEF',substring(@bin,@i,1)/16+1,1)
+substring('0123456789ABCDEF',substring(@bin,@i,1)%16+1,1)
+@re
,@i=@i-1
-- return('0x'+@re)
return @re
end
GO

0
wodeqq584958184
wodeqq584958184 感谢
大约一年之前 回复
wodeqq584958184
wodeqq584958184 回复fffssso: 问题我自己解决了
大约一年之前 回复
fffssso
Zhang15150360236 回复fffssso: 感觉你这代码主要是判断语句中少了括号吧,把周三的都扩一起,周四的扩一起,再用or连接起来
大约一年之前 回复
fffssso
Zhang15150360236 判断如果当前时间是周四,set @s=datename(hh,getdate())+24,后面的判断语句周四那个改为8+24就好了
大约一年之前 回复
wodeqq584958184
wodeqq584958184 回复zfhuaq: windows计划任务???什么鬼...能详细解释下吗
大约一年之前 回复
zfhuaq
zfhuaq windows计划任务
大约一年之前 回复
wodeqq584958184
wodeqq584958184 看不懂。。。。。 找不出跟我这个有什么联系
大约一年之前 回复

有SQL server大神前来解救吗~!! 非常急啊~!!!急救!!!

0

你把代码贴出来啊,都不知道你是怎么加的时间条件

0
wodeqq584958184
wodeqq584958184 已经贴出来了
大约一年之前 回复
wodeqq584958184
wodeqq584958184 稍等 我整个存储过程贴出来
大约一年之前 回复

这是我完整的存储过程代码

USE [plc]
GO
/****** Object: StoredProcedure [dbo].[sp_table5_insert] Script Date: 05/30/2018 08:54:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- 插入T5逻辑实现
ALTER proc [dbo].[sp_table5_insert]
@_T4ID BIGINT -- machine-status=0的自增id
as

BEGIN

    -- 上一条错误代码记录id
DECLARE @_T4ErrorCodeID BIGINT

-- 分钟时差
DECLARE @_timeDifferenceMin BIGINT

--时间段变量
DECLARE @shi int
set @shi=Datename(HOUR,GetDate())

--星期段变量
DECLARE @xingqi nvarchar(255)
set datefirst 1
set @xingqi=Datename(WEEKDAY,GETDATE())

-- 开始时间
DECLARE @_machineItime VARCHAR(50)

-- 获取上一条错误代码记录id并且计算以分钟为单位的时差
SELECT TOP 1 @_T4ErrorCodeID = id, @_timeDifferenceMin = DATEDIFF(S,ng_itime,(SELECT machine_itime FROM table4 
WHERE id = @_T4ID))
        FROM table4 
        WHERE id < @_T4ID AND location IS NOT NULL AND pointer IS NOT NULL AND ng_itime IS NOT NULL 
        ORDER BY id DESC;


--判断时间,星期一早8点到晚8点就把数据插入到指定字段中

if(@xingqi='星期一') and  (@shi>8 and @shi<20)
begin
-- 对T5表操作,存在类型累加时间,不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer 
WHERE t4.id=@_T4ErrorCodeID)
    -- 修改
    UPDATE table5 
            SET [Montime_8:00AM-8:00PM] = ISNULL([Montime_8:00AM-8:00PM],0) + @_timeDifferenceMin 
            FROM table5  AS t5, table4 AS t4
            WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
    -- 插入
    INSERT INTO table5(location,pointer,[Montime_8:00AM-8:00PM])      
        SELECT location,pointer,@_timeDifferenceMin
              FROM table4     
              WHERE id = @_T4ErrorCodeID; 
end

--判断时间,星期一晚8点到星期二早8点

if(@xingqi='星期一' and @shi>20) or (@xingqi='星期二' and @shi<8)
begin
 --对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer 
WHERE t4.id=@_T4ErrorCodeID)
     --修改
    UPDATE table5 
            SET [Montime_8:00PM-8:00AM] = ISNULL([Montime_8:00PM-8:00AM] ,0) + @_timeDifferenceMin 
            FROM table5  AS t5, table4 AS t4
            WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
     --插入
    INSERT INTO table5(location,pointer,[Montime_8:00PM-8:00AM])      
        SELECT location,pointer,@_timeDifferenceMin
              FROM table4     
              WHERE id = @_T4ErrorCodeID; 

END

--判断时间,星期二早8点到星期二晚8点

if(@xingqi='星期二' ) and (@shi>8 and @shi<8 )
begin
 --对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer 
WHERE t4.id=@_T4ErrorCodeID)
     --修改
    UPDATE table5 
            SET [Tuetime_8:00AM-8:00PM] = ISNULL([Tuetime_8:00AM-8:00PM] ,0) + @_timeDifferenceMin 
            FROM table5  AS t5, table4 AS t4
            WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
     --插入
    INSERT INTO table5(location,pointer,[Tuetime_8:00AM-8:00PM])      
        SELECT location,pointer,@_timeDifferenceMin
              FROM table4     
              WHERE id = @_T4ErrorCodeID; 

END

--判断时间,星期二晚8点到星期三早8点
if(@xingqi='星期二' and @shi>20 ) or (@xingqi='星期三' and @shi<8 )
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Tuetime_8:00PM-8:00AM] = ISNULL([Tuetime_8:00PM-8:00AM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Tuetime_8:00PM-8:00AM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期三早8点到星期三晚8点
set datefirst 1
set @xingqi=Datename(WEEKDAY,GETDATE())
if(@xingqi='星期三') and (@shi>8 and @shi<20)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Wedtime_8:00AM-8:00PM] = ISNULL([Wedtime_8:00AM-8:00PM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Wedtime_8:00AM-8:00PM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期三晚8点到星期四早8点
set datefirst 1
set @xingqi=Datename(WEEKDAY,GETDATE())
if(@xingqi='星期三' and @shi>20 or @xingqi='星期四' and @shi<8)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Wedtime_8:00PM-8:00AM] = ISNULL([Wedtime_8:00PM-8:00AM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Wedtime_8:00PM-8:00AM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期四早8点到星期四晚8点

if(@xingqi='星期四') and (@shi>8 and @shi<20)
begin
 --对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer 
WHERE t4.id=@_T4ErrorCodeID)
     --修改
    UPDATE table5q
            SET [Thutime_8:00AM-8:00PM]= ISNULL([Thutime_8:00AM-8:00PM] ,0) + @_timeDifferenceMin 
            FROM table5  AS t5, table4 AS t4
            WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
     --插入
    INSERT INTO table5(location,pointer,[Thutime_8:00AM-8:00PM])      
        SELECT location,pointer,@_timeDifferenceMin
              FROM table4     
              WHERE id = @_T4ErrorCodeID; 

END

--判断时间,星期四晚8点到星期五早8点
if(@xingqi='星期四' and @shi>20 ) or (@xingqi='星期五' and @shi<8)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Thutime_8:00PM-8:00AM] = ISNULL([Thutime_8:00PM-8:00AM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Thutime_8:00PM-8:00AM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期五早8点到星期五晚8点
if(@xingqi='星期五') and (@shi>8 and @shi<20)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Fritime_8:00AM-8:00PM] = ISNULL([Fritime_8:00AM-8:00PM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Fritime_8:00AM-8:00PM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期五晚8点到星期六早8点
if(@xingqi='星期五' and @shi>20) or (@xingqi='星期六' and @shi<8)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Fritime_8:00PM-8:00AM] = ISNULL([Fritime_8:00PM-8:00AM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Fritime_8:00PM-8:00AM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期六早8点到星期六晚8点
if(@xingqi='星期六' ) and (@shi>8 and @shi<20)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Sattime_8:00AM-8:00PM] = ISNULL([Sattime_8:00AM-8:00PM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Sattime_8:00AM-8:00PM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期六晚8点到星期天早8点
if(@xingqi='星期六' and @shi>20 ) or (@xingqi='星期天' and @shi<8)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Sattime_8:00PM-8:00AM] = ISNULL([Sattime_8:00PM-8:00AM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Sattime_8:00PM-8:00AM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期天早8点到星期天晚8点
if(@xingqi='星期天' ) and (@shi>8 and @shi<20)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Suntime_8:00AM-8:00PM] = ISNULL([Suntime_8:00AM-8:00PM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Suntime_8:00AM-8:00PM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END

--判断时间,星期天晚8点星期一早8点
if(@xingqi='星期天' and @shi>20 ) or (@xingqi='星期一' and @shi<8)
begin
--对T5表操作存在类型累加时间不存在新增
IF EXISTS (SELECT * FROM table5 AS t5 LEFT JOIN table4 AS t4 ON t4.location=t5.location AND t4.pointer=t5.pointer
WHERE t4.id=@_T4ErrorCodeID)
--修改
UPDATE table5
SET [Suntime_8:00PM-8:00AM] = ISNULL([Suntime_8:00PM-8:00AM] ,0) + @_timeDifferenceMin
FROM table5 AS t5, table4 AS t4
WHERE t4.location=t5.location AND t4.pointer=t5.pointer AND t4.id=@_T4ErrorCodeID;
ELSE
--插入
INSERT INTO table5(location,pointer,[Suntime_8:00PM-8:00AM])

SELECT location,pointer,@_timeDifferenceMin
FROM table4

WHERE id = @_T4ErrorCodeID;

END
END

0

提示:我的这个存储过程的执行是通过另一个的触发器触发后执行,触发条件是当table4有数据进来时,满足条件后就执行这个存储过程

0
 declare @week int
declare @hour int

SELECT @week=DatePart(Dw, GETDATE()) --周日为1,周六为7
SELECT @hour=DatePart(Hh, GETDATE()) --24小时
--星期三 早上8点到晚上8点
if(@week=4 and 8<= @hour and @hour<=20)
 begin
 select 1
 end
--星期三 晚上9点到星期四早上7点
if((@week=4 and @hour>20) or (@week=5 and @hour<8))
 begin
 select 2
 end

0
qq_35955916
程序员的键盘 根据自己的 准确需求来调整范围界定(等号的位置)
大约一年之前 回复

时间判断有点问题,星期三和星期四的限制条件用括号分开,中间用OR判断

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SQL Server 2008的问题!急急急
应用程序用的ADO连接SQL Server 2008数据库进行操作,在运行过程中一般两三天就会出现连接数据库很慢,根本没办法进行select操作,应用程序重启都没有用,必须要重启数据库才行!但是在出现此问题的时候用数据库系统自带的工具可以查询数据。开始用的ADO提供者是SQLOLEDB,以为是这个原因,后来使用提供者SQLNCLI10,还是出问题,头痛啊,不知道哪位大大能帮忙解决一下啊!
sql server 插入时间数据的问题.
ddd=now()rnrnrst.fields("date").value=ddd 产生错误.rnrn请问怎样将时间数据写入数据库中??
Sql Server 2008 插入时间型数据出错
"insert into 备忘录(日期,内容,记录人,记录时间) values('#2011/2/13#','家狠狠哭','肖淑芬',2011/2/13 11:45:23)"rnrn这句代码执行是提示在11附近有语法错误,我不太了解2008里面的时间格式,但是我查阅了相关的文章,这样的时间格式是没问题的啊,怎么报错呢。rn另外我用过rn"insert into 备忘录(日期,内容,记录人,记录时间) values('#2011/2/13#','家狠狠哭','肖淑芬','2011/2/13 11:45:23')"rn"insert into 备忘录(日期,内容,记录人,记录时间) values('#2011/2/13#','家狠狠哭','肖淑芬','#2011/2/13 11:45:23#')"rn"insert into 备忘录(日期,内容,记录人,记录时间) values('#2011/2/13#','家狠狠哭','肖淑芬',#2011/2/13 11:45:23#)"rn等几种格式都不对,请高手指点应该怎么写~
SQL 2008 急急急······
[b]哪位大哥知道在sql 2008中新建 审核,会出现如图片这样的错误????[/b]rnrn[img=https://img-bbs.csdn.net/upload/201501/26/1422278559_652332.jpg][/img]rnrn我查了一些资料,说是没有什么权限,麻烦知道的大哥给予解答,小弟谢过······rnrn
sql server 2008 插入中文数据乱码
我的操作系统是windows server 2008 英文版的rn现象是 我在sql server 直接写sql语句,插入中文,还是中文rn我试过了网上很多的方法,比如设置字符集但是都是无效rn请高人帮我分析分析,谢谢各位大侠rn
SQL server 2008 的问题,急
我机器上原来装了2005,昨天刚装了2008,使用management studio 2008出现一下问题:rn1、第一次启用时导入了2005的设置,结果现在没有编辑SQL时没有智能感知,怎么能打开这个功能呢?rn2、登录本机的2005数据库,在对象资源管理器中能够列出数据库中的表名,但登录一个远程的2005数据库,却列不出表名,能够列出系统视图名称,怎么解决?rn3、本机原来装了sourcesafe,现在使用management studio 2008能够打开原来用2005建立的解决方案,但用management studio 2005打不开了,系统显示“没有注册类别”,能解决吗?rnrn在线等,急!
SQL 存储过程问题 ,急急急
第一种写法rnrnSELECT *rn FROM table1 bsrnWHERE bs.dtCreate >= '2014-10-20 00:00:00'rn AND bs.dtCreate <= '2014-11-20 00:00:00'rnrn1秒钟出来 rnrnrnrn第二种写法 rndeclare @a_dtBegin_ThisMonth datetime rnset @a_dtBegin_ThisMonth='2014-10-20'rndeclare @a_dtEnd_ThisMonth datetime rnset @a_dtEnd_ThisMonth='2014-11-20' rnrnSELECT *rn FROM table1 bsrnWHERE bs.dtCreate >= @a_dtBegin_ThisMonthrn AND bs.dtCreate <= @a_dtEnd_ThisMonthrnrn30分钟都没 出来 rnrn是 什么原因
SQL server 存储过程的编写
USE [数据库名称] GO /****** Object:  StoredProcedure [dbo].[insertbGait]    Script Date: 2018/7/17 15:51:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ====================================...
急急急!!!关于SQL SERVER问题???
如果用SQL SERVER作数据库的话,我们发布软件时,rn常常要求客户安装SQL SERVER数据库系统,rn但是客户若是不会安装和配置SQL SERVER 的话,rn怎么办?这个问题令我们头痛。rnrn因此,想问问大家,在做发布软件安装盘时,rn如何使客户“不需要”安装SQL SERVER数据库系统???rn
关于sql server 数据库连接的问题 急急急!!!!
我用的是 sql server 个人版 在asp程序中,怎么才能建立连接?rn最好把代码给我,谢谢了,
SQL SERVER 2008 插入最大量
请教大神一个问题rn在连续插入方式中,采用bulk insert方式,每秒多少插入量,谢谢。rn
关于SQL Server 数据插入的问题
我在数据库里的主键id是让他选为标志为是,种子为1,递增量为1,功能应该就每次加1吧?rn本来以为它就像ACCESS里的自动编号一样,但现在发现不是。rn在DELPHI里我不能插入,因为我给这个字段付值的话,它说主键不能显式的给它付值。我不给它付值的话,他又说字段id不能为空。rn这个怎么回事啊?rn我们做的时候一般不是有个键是自动增加的嘛,但是在DELPHI里面TABLE控件为什么不给这个字段付值就会出错呢?我在asp里不给它付值好象没什么问题,它会自动增加,但DELPHI 里为什么我也不知道?初次用DELPHI,请指教,谢谢rn
SQL插入时间数据
我想在表中插入时间rnrn从00:00:00 一直到23:59:59 rnrn就这样循环插入一次rnrn不需要前面的日期,只需要具体的时分秒rnrn这应该怎么写呢
关于查询多条件的SQL。急急 急
请问:我要进行一种类似网络上的查询,条件有A,B,C,D,E ,rn可能需要全部5个条件,也可能只需要部分的条件,在SQL2000中该如何做到?rn一样一样分析不是要有很多的判断结果么?rn
SQL Server 2008找不到存储过程
现在有两个用户,一个sa,一个是自已建的用户 her;rn另外有数据库EBS_TSrn其中,数据库的EBS_TS的架构是自已建的一个sdb;rn当使用存储过程的时候,必须要rnUSE [EBS_TS]rnexec [sdb].[我的存储过程],否则便提示找不到存储过程,rn这个非常奇怪,因为以前是可以直接exec [我的存储过程]这样的,rn无论用哪个ID登进去都一样,sa和sdb,搞不懂这个是怎么回事。rnrnPS:因为框加那边是印度开发的,没有源码,二次开发使用存储过程,rn现在一打开就是找不到存储过程,而框架的源码肯定是没有使用:rn[dbo].存储过程 或sdb.存储过程 这样形式的,只是单纯的调用存储过程rn所以必须解决这个问题,望大牛们给点思路。rn
sql server 2008存储过程分页
[code=&quot;java&quot;] USE [hospital] GO /****** Object: StoredProcedure [dbo].[P_PAGE] Script Date: 10/21/2012 10:33:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [db...
《急》关于sql server存储过程问题
题目如下: rn1在weituots库中建立三张用信息表(表名自己定义)A、B、C。rnA表中需要的字段:用户ID、账号、账号类型、记录产生时间。rnB表中需要的字段:用户ID、所属营业部ID、用户密码、用户安全等级。rnC表中需要的字段:用户ID、用户姓名、手机号码、emial、地址。rn2、创建一个存储过程,实现以下功能:rn添加用户(账号、姓名、密码、用户安全等级 字段必须,其它字段可选);rn删除用户;rn修改用户密码;rn修改用户资料(手机号码、emial、地址);rn修改用户安全等级;('0' 代表静态密码,'1' 代表证书指纹,'2’代表动态口令,‘3’代表验证码)rn3、调用2中创建的存储过程添加5个不同的用户。rn4编写一个定时任务,定时将安全等级为'2'的用户的安全等级修改为‘3’;数据库定时任务可以设置为每天指定的时间触发。rn5密码存储的方式请各自实现rn rn主要是在一个存储过程中实现增删改 怎么都需要全部的参数才能执行,设置默认值也不行,很是气馁 本人新手,望指教啊!!
sql server 2008 存储过程解密
加 with encryption 语句加密的存储过程能解密吗?rnrn
大量数据插入SQL数据库问题,急急急!!!!!!
写了一个如下函数进行将数据插入到SQL数据库中:rnbool UpdateToSQL(SQLInfo &info,char Item[][50],int nCount)rnrn CString strSQL;rn rn CString strItem,strValue,strTemp,SQLItem;rnrn tryrn rn strItem.Format("PC_Name,SN,Result,Fail_Item,Fail_Value,End_Time,Test_Time");rn //rn CString str;rn sprintf((LPSTR)(LPCSTR)strTemp,Item[6]);rn if(strTemp=="")rn str="0";rn elsern rn int n;rn n=atoi(strTemp);rn str.Format("%d",n);rn rn rn/* sprintf((LPSTR)(LPCSTR)strTemp,Item[7]);rn if(strTemp=="")rn sprintf(Item[7],"N");*/rn strValue.Format("'%s','%s','%s','%s','%s','%s','%s'",Item[0],Item[1],Item[2],Item[3],rn Item[4],Item[5],str);rn //rn for(int i=8;i<=nCount;i++)rn rn SQLItem.Format("%d",i-7);rn if (SQLItem.GetLength()==1)rn SQLItem="R00"+SQLItem;rn else if (SQLItem.GetLength()==2)rn SQLItem="R0"+SQLItem;rn elsern SQLItem="R"+SQLItem;rnrn strItem=strItem+","+SQLItem;rn strValue=strValue+","+"'"+Item[i]+"'";rn rn //rn strSQL.Format("insert into %s with (tablock) (%s) values (%s)",info.Tablename,strItem,strValue);rnrn //m_pConnection->Execute((_bstr_t)strSQL,NULL,NULL); 2007-10-18rn //m_pConnection->Execute((_bstr_t)strSQL,NULL,adCmdText);rn //m_pConnection->CommandTimeout=30;rn //rn //rn m_pConnection->Execute((_bstr_t)strSQL,NULL,NULL);rn rnrn rn for(int k=0;k
sql server 数据插入问题
特定系统允许带标记的(narked)空位,带标记值⊥i等价于它本身,但在i≠j时,⊥i≠⊥j,带标记空值的一个应用是允许对视图进行某些特定的更新。考虑如下视图loan_info,写出如何可以利用带标记的空值允许将("Johnson",1990)插入到loan_info中rnrnloan_number barname account customer_namernL-170 oaontown 3000 JonesrnL-230 kedwood 4000 SmithrnL-155 null null Hayesrnrnrnrnrn谢谢各位
关于SQL SERVER 2008的问题
刚下载安装了SQL SERVER 2008,在SQLQUERY中,我想要打开一个.SQL的文件,但是报错,报错信息如下:未能完成操作。存储空间不足,无法处理此命令。rn请教一下,安装盘下面还有8G的空间,为何会出现存储空间不足的错误信息呢,请指教。
关于Sql Server 2008的问题
在我们登陆数据库的时候会选择登陆的服务器名,上次远程访问了一个数据库后在他的选择菜单里面就多了这个服务器名,现在是想把这个名字从里面去掉,不在显示,我查了说在注册表里面删除注册信息,我试过,但还是删不掉,现在请问下在sql2008里面怎么删掉!
关于sql server 2008的问题
机子上装的是sql 2008 并且打了sp3补丁。。能打开sql2008R2的数据库么,如果不能 ,怎么解决。
***急急急!!!把时间插入数据库的问题
我要把用户输入的时间生成的字符串,比如:20030924555(2003年9月24日5时5分秒)转换成时间插入到数据库中(注意:数据库为SQL200),应该怎么办,希望好心人写的详细点,谢谢大家了!!!
SQL Server 存储过程问题!急!
初学存储过程,遇到一个问题,折腾了一个晚上也没搞定,请高手帮忙!rn题目如下:现有一个学生成绩管理系统,有三张表:rnS(学生基本信息)rnSC(成绩表)rnC(课程表)rnS表结构:rnS#:学号rnSNAME:姓名rnSEX:性别rnAGE:年龄rnGROUP:班级rnSC表结构:rnS#:学号rnC#:课程号rnGRADE:成绩rnC表结构:rnC#:课程号rnCNAME#:课程名rnTEACHER:教师rn每学期需要为学生评奖学金,需要按班级生成一张成绩表。输入班级名称,生成下面的成绩表:rn学号 姓名 性别 英语 高数 ....rnrn我用存储过程来做,但是没有做初来,初学,请大家指教!我遇到的问题是后面的科目成绩本来是表的内容,如何把它由表SC中抽出每条数据来组合成绩表呢,下面是我的代码,有错的,提示说有多行数据错误,大家见笑了rnCREATE PROCEDURE my_procrn @class varchar(10)rnAS rnSELECT s.s# 学号, sname 姓名 ,sex 性别, rn(SELECT grade from sc,c where sc.c#=c.c# and c.cname='math') 数学, rn(select grade from sc,c where sc.c#=c.c# and c.cname='english') 英语rnFROM s INNER JOIN scrn ON s.s# = sc.s# INNER JOIN crn ON sc.c# = c.c# rnWHERE cname LIKE @class
SQL Server 急急急!!!
你是一台SQLserver 2000计算机管理员。服务器包含一个命名为Jpjw的数据库,并被一个客户/服务器应用程序使用。每个雇员有一个SQL server 注册帐户应用程序用来访问服务器。你的公司雇佣了一个叫NewChen的雇员.你创建了一个名为NewChen的注册帐户,你也创建了一个名为NewChen的数据库用户,并授权该用户使用该数据库的所有的权限.rn不管什么时候NewChen运行客户/服务器应用程序,他收到如下错误信息: ‘无效的对象名’。 NewChen也能使用应用程序,他应该执行什么操作可以解决此问题?
sql server 2008 插入特殊字符的问题
最近在使用sql server2008 时出现了一个问题,之前有一张表里的一个字段的类型为varchar,然后最近在存一个含有特殊字符的数据,A01.001† 时,发现存到数据库里变成了 A01.001?,最后一个特殊字符变成了问号,恳请各位大佬能教教小弟怎么解决这个问题。
关于存储过程,急急急!!
rn declare @BuyQuoteNo_1 [varchar](20)rn declare @CreateDate_2 [datetime]rn declare @Buyer_3 [int]rn declare @DepartmentID_4 [int]rn declare @ProductID_6 [int]rn declare @Quantity_7 [numeric]rn declare @Assigner_8 [int]rn declare @BillID [int]rn declare @MaxID [int]rn declare @MinID [int]rnrnset @buyquoteno_1='0304160001'rnset @createdate_2=getdate()rnset @buyer_3=3rnset @departmentid_4=3rnset @productID_6=4rnset @quantity_7=10rnset @assigner_8=3rnset @billid=2rnset @maxid=127rnset @minid=127rnrn rnrnbeginrnbegin transaction T1rnrndeclare @varid intrndeclare @confirmtime datetimerndeclare @ID_cur cursorrndeclare @Source [varchar](20)rnset @Source='自动生成'rnrn--写询价主表rnINSERT INTO [jxc].[dbo].[BuyQuote] rn ( [BuyQuoteNo],rn [CreateDate],rn [Buyer],rn [DepartmentID],rn [Source],rn [ProductID],rn [Quantity],rn [Assigner]) rn rnVALUES rn (@BuyQuoteNo_1,rn @CreateDate_2,rn @Buyer_3,rn @DepartmentID_4,rn @Source,rn @ProductID_6,rn @Quantity_7,rn @Assigner_8)rnrnrn set @ID_cur=cursor for rn select BuyQuoteID from BuyQuotern where BuyQuoteNo=@BuyQuoteNo_1rn open @ID_currn fetch next from @id_cur into @varidrn close @ID_currn deallocate @ID_currn--用游标取出IDrnrn--写采购询价审核流rnset @ConfirmTime=1900-01-01rn INSERT buyquoteconfirmrn (buyquoteid,StepID,StepName,EmployeeID,MaxAmount,status,ConfirmTime,DepartmentID)rn SELECT @varID,StepId,StepName,EmployeeID,MaxAmount,'未审核',@ConfirmTime,@DepartmentID_4rn from flow where billID=@BillID and DepartmentID=@DepartmentID_4rnrnrnrn--写Buyquoteapply表rninsert buyquoteapplyrn (buyquoteid,productid,rowid,buyapplyid)rnSELECT @varid,ProductID,rowid,BuyApplyIDrn FROM BuyApplyDetailrnWHERE (BuyApplyID INrn (SELECT buyapplyidrn FROM buyapplyrn WHERE (buyapplyid BETWEEN @MinID AND @MaxID) AND (Status = '已审核'))) AND rn (ProductID = @ProductID_6)rnrn--更改BuyApplyDetail里的标志,0为未下达,1为已下达rnrnupdate buyapplydetailrn set status=1rnWHERE (BuyapplyID In (select buyapplyid from buyapply where status='已审核' )) and ((Status = '0')and (productid=@productid_6))rnrnrnrn--更改BuyApply里的状态标志,改成已下达rnupdate buyapplyrn set status='已下达'rnWHERE (status='已审核') and (buyapplyid in(select buyapplyid from buyapplydetail where((Status = '0')and (productid=@productid_6))))rnrnrnrncommit transaction T1rnrnIF (@@error <> 0)rnBEGINrn ROLLBACK TRANsaction T1rnENDrnrnendrnGOrnrnrnrnrn为什么只会执行前四句SQL语句,第五句Update不会执行,我单独运行那一句是好的rn请问有没有哪位高手知道是怎么回事啊???
sql server 2008 时间保存格式问题
[code=sql]insert into db.dbo.s_real_data (ID,SN,COMMND,DATALEN,PAN_ID,SHORT_ID,DEVICE_TYPE,DEVICE_STATUS,TEMPERATURE,GAS_FLOW,POLLINGRATE,TIME) values ( NewId() ,321,13,4660,1,513,25,50,65,1192973,1,5154-04-30 00:00:00.0),( NewId() ,321,13,4660,1,513,25,50,65,1192973,1,5154-04-30 00:00:00.0),( NewId() ,321,13,4660,1,513,25,50,65,1192973,1,5154-04-30 00:00:00.0)[/code]rnrn上面是我插入的sql 语句;rnrn在sql server 2008 中,time 存储类型是timestamp 保存的时候 出现以下错误,保存失败;rnrn消息 102,级别 15,状态 1,第 1 行rnIncorrect syntax near '00'.rnrn这是什么问题?rnrnps:这是测试数据,不要纠结于数据。谢谢!
关于SQL Server 2008
SQL是怎样能让其他电脑访问的,为什么我机子装了2008却不能让别人访问我的数据库,具体操作应该怎样做?(可发送至邮箱331387591@qq.com)
关于SQL SERVER存储过程编写的目的和意义
据我所知,许多大型的数据库本身对一些应用程序经常使用到的SQL会自行进行缓存处理,以提高执行的效率rn而SQL SERVER是否有此功能?如果有的话,我想请教一下存储过程存在的意义rnrn我对SQL SERVER不怎么熟悉,对它的各方面性能和应用要求也不是很了解,所以想问一下,这个存储过程主要是为了常用SQL的缓存而存在还是为了批处理一些复杂的SQL而存在?
急:sql server 2008 视图或者存储过程相关问题?
各位大虾好:rnrn 小编我此时此刻真的很高兴,我已经将近3年没有登陆过CSDN啦,今有兴在此登陆CSDN让我非常激动和澎湃。。rnrn问题:有视图的方式查询sql server 2008 所用的数据库中的所用表中的数据信息。。。rnrn疑问:一个数据库中只有一张表,反之,50个数据库对应50个表,它们字段类型与字段长度都一样。rnrn请问,这样的视图应该如何完成呢?rnrnrn如果是ORACLE的话我直接2次循环一次赋值就可以。rnrn但是,sql server 2008 第一次玩 请大家帮助。rnrn视图或者存储完成都可以。。rnrn给一个列子也可以。。rnrn感谢 各位的帮助。
数据插入问题,急急急急!
问题一:rn表 用户名 用户数据 用户提交次数(记录用户是第几次提交的数据)rn A ettr 1rn B dsgsd 1rn B gag 2rn C uiyi 1rn A dags 2rn A sdghds 3rn现在要往表里插入新数据:用户名=A ,用户数据=jhsdg,但是不知道是第几次,希望能通过对表中已有的数据进行判断后,自动得出这是A第几次提交数据rn请问这个怎么用SQL实现?要完善高效点的rnrnrn问题二:我写的是服务器程序,用完成端口做的,有2条数据工作线程,数据库是ACCESS,表中的数据一般最多到1万条,同时用户提交数据的时间比较集中,那么这样的插入操作所用时间会导致响应过慢嘛?
SQL 2008存储过程的问题
/// ALTER proc [dbo].[getInbillMoney]rn /// @no nvarchar(200)rn /// --@temp nvarchar(200) outputrn /// asrn /// declare @m numeric(12,4)rn /// SET @m=(select SUM(costMoney) from InBill where inbillNO=@no)rn /// return @m;rn /// rn /// rn string getInbillMoney(string bill)rn rn SqlConnection cn = LinkDB.LinkDBSqlconnection();rn SqlCommand cmd = new SqlCommand("getInbillMoney",cn);rn cmd.CommandType = CommandType.StoredProcedure;rn cmd.Parameters.Add("@no", SqlDbType.NVarChar).Value = bill;rnrn SqlParameter a = cmd.Parameters.Add("@return_value",rn SqlDbType.NVarChar);rn a.Direction = ParameterDirection.ReturnValue; rn cmd.ExecuteNonQuery();rn string re = (string)(cmd.Parameters["@return_value"].Value.ToString());rn return re;rn rn上面的存储过程,用C#调用时怎么没有小数位呀(表中是有小数位的)
关于client/server的问题,急急急急急
菜鸟我正在从事his系统的设计!因为做软件的时间非常短!rn有一个问题请教!rn请教当在一台机器上进行录入的时候其它的机器如何立刻显示!
关于SQL 建立存储过程!急急急!
-- ================================================rn-- Template generated from Template Explorer using:rn-- Create Procedure (New Menu).SQLrn--rn-- Use the Specify Values for Template Parameters rn-- command (Ctrl-Shift-M) to fill in the parameter rn-- values below.rn--rn-- This block of comments will not be included inrn-- the definition of the procedure.rn-- ================================================rnSET ANSI_NULLS ONrnGOrnSET QUOTED_IDENTIFIER ONrnGOrn-- =============================================rn-- Author: rn-- Create date: rn-- Description: rn-- =============================================rnCREATE PROCEDURE rn -- Add the parameters for the stored procedure herern <@Param1, sysname, @p1> = , rn <@Param2, sysname, @p2> = rnASrnBEGINrn -- SET NOCOUNT ON added to prevent extra result sets fromrn -- interfering with SELECT statements.rn SET NOCOUNT ON;rnrn -- Insert statements for procedure herern SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>rnENDrnGOrnrnrnrnrn[size=16px][b]在上面的模板中,如何创建存储过程。。。。求教。。。[/b]rnrn要求是:1建立表1保存职员基本信息;rn2 建立表2保存操作人员姓名及密码;rn3 建立存储过程1用于填充下拉列表框(窗体中有combobox);rn4建立存储过程2用于判断操作员及密码;rn5建立存储过程3用于统计男女职员人数rnrn表我已经建好了 就是不知道怎么写存储过程的那个代码 麻烦各位在上面的模板中教我怎么写吧 拜托了。。。[[/size]img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/9.gif][/img]
急急急。。。向数组中条件插入
需要将String类型的“1000000”显示成为“1,000,000”这种格式的。。。
sql server 2000存储过程问题!急急加急!!!
要求:创建一个delete_one存储过程,每次它删除表T中重复元组中的一个。例如假定表T=1, 2, 2, 3, 3, 3, 4, 4, 4, 4;对其执行一次delete_one,T=2, 3, 3, 4, 4, 4,再执行一次delete_one,T=3, 4, 4。没思路。。。望各位指教啊!!!谢谢先!!!
简单的SQL SERVER 存储过程编写
求大神指点一下:rn打算写一个存储过程,但是写的过程中遇到些问题,具体要求是rn首先 把输入的几个字段显示出来rn然后再将数据库中已经存在的数据和输入的参数进行对比,如果相同,IsValid为1,不相同IsValid为0rn运行结果类似于下图这种!rn非常感谢!rn[img=https://img-bbs.csdn.net/upload/201709/20/1505868908_580128.png][/img]
关于sql server的存储过程的问题?
请问一下sql server中存储过程如何创建,修改?
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合

相似问题

4
关于SQL server 2008如何求每一行几列的数据总计并赋值到另一个字段中
4
关于SQL server 2008时间差datediff函数计算问题
7
关于SQL server 2008 触发器 的问题
2
sql server 2008存储过程向变量赋值
2
SQL server 2008R2配置服务器下SQL server服务远程过程调用失败
1
安装SQL Server2017时安装到数据库引擎、SQL客户端连接、SQL客户端连接SDK报错
5
传入数据类型是List<String> 数据库的字段类型应该是什么 SQL server
0
C++如何通过ADO传递表值参数到SQL Sever存储过程?-- 【已解决】
1
Sql Server中关于CDC(数据更改捕获)的问题:sys.sp_MScdc_capture_job中找不到相应依赖存储过程与函数
2
sql server新增数据时主键自动生成
3
sql server无法连接服务器,sql server网络配置里面没有任何协议
0
sql server使用sp_addlinkedserver连接另一台数据库时,所做的查询操作是由哪台服务器承当运算压力的.
2
Sql Server Management Studio如何连接到VisualStudio2017自带的数据库?
0
sql创建存储过程的问题
1
求助:关于数据库中如何存储一段视频时长的问题?
1
如何用C# winform读取存储在SQL数据表中的excel文件路径,然后将excel文件中的数据以折线图显示出来?
0
在使用matlab对SQL SERVER进行数据更新操作时,显示我的列名无效
3
sql server数据库,现在我有一张表的数据,分别放在两个数据库上。
1
求助,怎么用存储过程导出一个库所有的表数据