您的位置:程序门 -> ms-sql server -> 基础类



问个sql语句怎么写


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


问个sql语句怎么写
发表于:2007-02-02 13:33:23 楼主
1。每天凌晨1点修改a表某条记录
  2。还有怎么向一个表插入一条记录   为什么我这样写
insert   into   a   (id,name)   values   (3,程)   提示
在此上下文中不允许使用   '程 '。此处只允许使用常量、表达式或变量。不允许使用列名。
而我在企业管理器里手动添加同样的记录就不会报错啊
发表于:2007-02-02 13:35:191楼 得分:0
insert   into   a   (id,name)   values   (3, '程 ')
发表于:2007-02-02 13:35:292楼 得分:0
1、看看作业的帮助

2、
insert   into   a   (id,name)   values   (3, '程 ')  
发表于:2007-02-02 13:35:433楼 得分:0
1。每天凌晨1点修改a表某条记录
--------------

用job。
发表于:2007-02-02 13:42:274楼 得分:0
--通过向导创建作业的基本步骤:

(1)企业管理器--管理--sql   server代理--作业
(2)右键作业--新建作业
(3)常规标签
--名称中输入作业名称
--如果不希望作业在创建后立即运行,则清除启用复选框
      例如,如果要在按计划运行之前测试某个作业,则禁用该作业。
--如果作业仅在此服务器上运行,单击以本地服务器为目标选项
--如果服务器是主服务器,作业在其它服务器上运行,单击以多个服务器为目标选项
--描述框中输入对作业功能的描述,最大字符数为   512
(4)步骤标签--新建
--步骤名中输入步骤名
--类型中选择transact-sql   脚本(tsql)
--数据库选择执行命令的数据库
--命令中输入要执行的语句   例如     EXEC   存储过程名   ...
--确定
(5)调度标签--新建调度
--名称中输入调度名称
--调度类型中选择你的作业的执行方式
(如果选择反复出现,那么可以点更改来设置你重复执行作业的方式)

(6)启动sql   agent服务,并设置为自动启动,否则你的作业不会被执行
--打开sql   server服务管理器--点开始继续--将当启动os时自动启动服务
--或我的电脑--控制面板--管理工具--服务--右键sqlserveragent--属性--启动类型--选择自动启动--确定.


发表于:2007-02-02 13:42:385楼 得分:0
####################################################
--通过代码创建作业的步骤:


if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(n '[dbo].[p_createjob] ')   and   objectproperty(id,   n 'isprocedure ')   =   1)
drop   procedure   [dbo].[p_createjob]
go

create   proc   p_createjob
@jobname   varchar(100),                           --作业名称
@sql   varchar(8000),                                 --要执行的命令
@servername   sysname= ' ',                         --job   server名
@dbname   sysname= ' ',                                 --默认为当前的数据库名
@freqtype   varchar(6)= 'day ',                 --时间周期,month   月,week   周,day   日
@fsinterval   int=1,                                   --相对于每日的重复次数
@time   int=170000                                       --开始执行时间,对于重复执行的作业,将从0点到23:59分
as
if   isnull(@dbname, ' ')= ' '   set   @dbname=db_name()

--创建作业
EXEC   msdb..sp_add_job   @job_name=@jobname

--创建作业步骤
EXEC   msdb..sp_add_jobstep   @job_name=@jobname,
                @step_name   =   '数据处理 ',
                @subsystem   =   'tsql ',
                @database_name=@dbname,
                @command   =   @sql,
                @retry_attempts   =   5,   --重试次数
                @retry_interval   =   5     --重试间隔

--创建调度
declare   @ftype   int,@fstype   int,@ffactor   int
select   @ftype=case   @freqtype   when   'day '   then   4
                                                                                when   'week '   then   8
                                                                                when   'month '   then   16   end
                ,@fstype=case   @fsinterval   when   1   then   0   else   8   end
if   @fsinterval <> 1   set   @time=0
set   @ffactor=case   @freqtype   when   'day '   then   0   else   1   end

EXEC   msdb..sp_add_jobschedule   @job_name=@jobname,  
                @name   =   '时间安排 ',
                @freq_type=@ftype   ,                                                 --每天,8   每周,16   每月
                @freq_interval=1,                                                     --重复执行次数
                @freq_subday_type=@fstype,                                   --是否重复执行
                @freq_subday_interval=@fsinterval,                   --重复周期
                @freq_recurrence_factor=@ffactor,
                @active_start_time=@time                                       --下午17:00:00分执行

if   @servername= ' '
set   @servername=@@servername
EXEC   msdb..sp_add_jobserver   @job_name   =   @jobname,  
          @server_name   =   @servername

go  

--调用
--每天执行的作业
EXEC   p_createjob   @jobname= 'dd '
                                  ,@sql= 'insert   into   表2(...)   select   ...   from   表1   where   ... '
                                  ,@servername= 'job服务器名 '
                                  ,@dbname= '数据库名 '
                                  ,@freqtype= 'day '
                                  ,@time= '000000 '
发表于:2007-02-02 13:51:176楼 得分:0
1\排job:在新增步驟下的命令寫入你的執行語句即可.
2\字符行的請在插入的時候加   '字符 '   如果字段是nchar   nvarchar就   n '字符 '
发表于:2007-02-02 16:59:367楼 得分:0
在企业管理器里做调度
发表于:2007-02-02 17:11:528楼 得分:0

update   表   set   更新得数据   where   (select   convert(varchar(8),getdate(),108)= '01:00:00 ')

不知道可不可以这样

第二个你应该打引号     唉


快速检索

最新资讯
热门点击