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(); //獲取輸出參數的值
獲取輸出參數的值的時候可以根據需要進行類型轉換
