sql2000存储过程
--1 先建立[CurrentTotal] 表
CREATE TABLE [dbo].[CurrentTotal]
(
[totalSewage] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[errorAmount] [numeric](18, 2) NULL ,
[Idx] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[tagId] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
--2封装存储过程
create proc pro_c
as
begin
declare @s varchar(8000)
set @s=''
select @s=@s+','+name
from sysobjects where xtype = 'U' and name like 'THisData2%'
set @s=REPLACE(@s,',',' group by tagid union all selct sum(value) as value,tagid from ')
set @s=stuff(@s,1,LEN('group by tagid union all'),'')
exec (@s)
end
--3建立作业
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
truncate table [dbo].[CurrentTotal]
exec pro_c
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排为一小时一次
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行
设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
② 用SQL 2000 , 创建一个存储过程 !要求如下 谢谢了
创建存储过程:
create proc ks_2
@stuID varchar(20)
AS
select C.cno , SC.grade --cno 表示课程号,stuID 表示学号
from student S, course C, score SC
where S.stuID = SC.stuID and C.cno = SC.cno and S.stuID = @stuID
执行存储过程:
exec ks_2 @stuID='200910342'
③ sql2000存储过程问题
给@ptr赋值的select语句不完整,缺少from子句。
select @ptr=textptr(takers) from 表名 where fileid=@fileID
④ 怎样在SqlServer2000下创建存储过程
在企业管理器你所建的表那里,有一个存储过程,右键,新建存储过程,在新建存储过程对话框输入T-SQL语句 create proc 存储过程名
as~~~~~~~~
确认无误后单击确定按钮,希望可以采纳
⑤ ms sql2000 的存储过程
你的update语句没有设置更新条件,根据你的存储过程来看,应该加上WHERE条件来限制要更新的数据,否则整个表的数据将全部被更新。
update MIS set 货物名称=@rwmc,货物总量=@rwzl,进货日期=@ksrq,进货天数=@rwyjts,货物周期=@zq,出货日期=@sjjsrq,价值=@fz,品种=@lei
where 货物ID=@rwid
你补充的信息正说明了问题,你的原句中“update MIS set 货物ID=@rwid”,而货物ID是主键,你没限定要更新哪条数据,结果你的语句就是把主键列更新为同一个值,肯定会失败的。
另外你判断表中是否存在数据为什么要使用游标呢?
⑥ SQL server2000存储过程,提示“必须声明变量@FYear”
存储过程中肯定使用到了@FYear,而你没有声明这个变量。
decalre @FYear 类型
如果你声明了,那你把语法写出来吧,肯定是哪个地方不小心写错了。
看您贴出的代码,可不只是这个提示这个错误了。
首先你的@sqlstr没声明
后边的set @sqlstr = @sqlstr + 加号的后边都是字符串的部分,也就是说,存储过程的两个参数,都被你引到了单引号当中,那么就失去了传值的作用了,成了字符串的一部分了。
还有select @sqlstr=@sqlstr+',coalesce(p.'+FEmpField+',0)' from cz_t_gzfl order by fid,这个返回行数是一行吧?如果是多行,这个没办法赋值的。
⑦ sql2000 系统有多少个存储过程
这要看情况,一般系统自带的存储过程有30个左右,还有就是用户自己建立的,
⑧ 关于sqlserver2000的存储过程
--因为SQL 2000不支持top后面直接接@N这样的参数的形式 所以你有2种方法
方法1
CREATE PROCEDURE A
@N int
AS
set rowcount @n
select * from B
set rowcount 0
GO
方法2:
CREATE PROCEDURE A
@N int
AS
declare @s varchar(8000)
set @s='select top '+RTRIM(@n)+' * from B'
exec (@s)
GO
http://blog.csdn.net/feixianxxx/archive/2009/08/03/4405684.aspx
参考它也可以
⑨ .net中 关于sql2000存储过程
SqlConnection _scon = new SqlConnection();
_scon.ConnectionString = "Data Source=.;Initial Catalog=数据库名;User Id=sa;Password=";
_scon.Open();
SqlCommand _scom = _scon.CreateCommand();
_scom.CommandType = CommandType.StoredProcere;
_scom.CommandText = "Card_Transfer"; //存数过程名称
_scom.Parameters.Add("@fromCardId", SqlDbType.VarChar).Value = fromCardId; //@fromCardId 参数名, SqlDbType.VarChar 参数类型,同时为输入参数赋值。
_scom.Parameters.Add("@Balance", SqlDbType.Money); //@Balance 参数名,SqlDbType.Money 参数类型
_scom.Parameters["@Balance"].Direction = ParameterDirection.Output; //将@Balance参数设置为输出参数
_scom.ExecuteNonQuery(); //执行存储过程
string balance = _scom.Parameters["@Balance"].Value.ToString(); //获取输出参数的值
获取输出参数的值的时候可以根据需要进行类型转换
