當前位置:首頁 » 存儲配置 » 存儲過程mssql

存儲過程mssql

發布時間: 2022-11-28 05:24:51

❶ MSsql存儲過程新手請教

CREATE PROCEDURE [sp_update] --存儲過程名稱
(
@param1 nvarchar(50),
@param2 nvarchar(50),
@param3 nvarchar(50),
@param4 nvarchar(50)--這是你傳入的參數
)
AS
--更新
UPDATE [你的表名]
SET [表中的欄位名1] = @param1,
[表中的欄位名2] = @param2 --要更新的欄位
WHERE [表中的欄位名3] = @param3 and
[表中的欄位名4] = @param4 --更新的條件

--返回更新的記錄
SELECT * FROM [你的表名]
WHERE [表中的欄位名3] = @param3 and
[表中的欄位名4] = @param4 --已更新的記錄

將以上[]的內容改為你自己的表和欄位名, 復制到SQL企業管理器的查詢窗口, F5運行即可生成一個存儲過程. 同樣在SQL企業管理器的查詢窗口輸入 exec [你的存儲過程名稱] '參數1', '參數2', '參數3', '參數4'即可執行上面的那條存儲過程.

❷ PHP怎樣調用MSSQL的存儲過程

//執行存儲過程 for($i=0;$i<$ses_basket_items;$i++) { $query="exec add_ddxx @p_account=\"$session_account\", @p_name=\"$name[$i]\", @p_num=\"$num[$i]\", @p_marketPRice=\"$marketprice[$i]\", @p_memberprice=\"$memberprice[$i]\", @p_priceoftax=\"$notaxprice[$i]\", @p_priceoflast=\"$lastprice[$i]\", @p_sumprice=\"$price[$i]\", @p_buy_date=\"$date\", @p_flag=\"$p_flag\""; $result=mssql_query($query,$connection) or die("存儲過程執行錯誤,無法執行該SQL:$query"); }

❸ MSSQL 寫一個存儲過程按時間段進行查詢

/*
主要查詢信息表tc_data表,
createtabletc_data(IDnumeric(22)--ID號
,char_namenvarcher(64)--訂單名稱
,numnumeric(22,3)--數量
,moneynumeric(18,22)--金額
,create_timedatetime--時間
)
寫一個存儲過程參數是條件(@conditionnvarchar(64)),開始時間(@begintimenvarchar(64)),結束時間(@endtimenvarchar(64));
說明:
條件(@conditionnvarchar(64))的內容為:Year、Quarter、Month、Week
開始時間(@begintimenvarchar(64))和結束時間(@endtimenvarchar(64))的內容為YYYY-MM-DD;
查詢時,當條件為Year年時,顯示年的最後一天的記錄,按開始時間和結束時間來確定查詢哪年,如果跨兩個或兩個以上年則顯示各年最後一天的記錄;
當條件為Quarter季度時,顯示季度的最後一天的記錄,按開始時間和結束時間來確定查詢哪個季度,如果跨兩個或兩個以上的季度則顯示各季度最後一天的記錄;
當條件為Month月時,顯示月最後一天的記錄,按開始時間和結束時間來確定查詢哪個月,如果跨兩個或兩個以上的月則顯示各月最後一天的記錄;
當條件為Week周時,顯示周內每天的記錄,按開始時間和結束時間來確定查詢哪個周,如果跨兩個或兩個以上的周則最多顯示四周每天的記錄。
*/
--以下為SQL2005或更高版本,在SQL2000上會出錯的
createprocdbo.Usp_Getdata
(
@conditionasnvarchar(64),--條件
@begintimeasnvarchar(64),--開始時間
@endtimeasnvarchar(64)--結束時間
)
as
begin
setnocounton;
ifdatediff(dd,@begintime,@endtime)<0
begin
raiserror50001'@begintime必須小於@endtime'
return
end
createtable#(begintimedatetimenotnull,endtimedatetimenotnull)
declare@Tcountasint
if@condition='Year'
begin
insertinto#
select
cast(tempYearasvarchar(4))+'-12-31',cast(tempYearasvarchar(4))+'-12-3123:59:59.997'
from(selecttop(datediff(yy,@begintime,@endtime)+1)((row_number()over(orderbyID))-1)+Year(@begintime)tempYearfromsyscolumns)a
end
declare@tempbeginasint
if@condition='Quarter'
begin
set@tempbegin=casewhenMonth(@begintime)>=1andMonth(@begintime)<4then3whenMonth(@begintime)>=4andMonth(@begintime)<7then6whenMonth(@begintime)>=7andMonth(@begintime)<10then9else12end
insertinto#
select
dateadd(m,tempNum*3,dateadd(dd,-1,dateadd(mm,1,cast((cast(Year(@begintime)asvarchar(4))+'-'+cast(@tempbeginasvarchar(2))+'-1')asdatetime)))),dateadd(m,tempNum*3,dateadd(dd,-1,dateadd(mm,1,cast((cast(Year(@begintime)asvarchar(4))+'-'+cast(@tempbeginasvarchar(2))+'-123:59:59.997')asdatetime))))
from(selecttop(datediff(qq,@begintime,@endtime)+1)((row_number()over(orderbyID))-1)tempNumfromsyscolumns)a
end
if@condition='Month'
begin
set@tempbegin=Month(@begintime)
insertinto#
select
dateadd(m,tempNum,dateadd(dd,-1,dateadd(mm,1,cast((cast(Year(@begintime)asvarchar(4))+'-'+cast(@tempbeginasvarchar(2))+'-1')asdatetime)))),dateadd(m,tempNum,dateadd(dd,-1,dateadd(mm,1,cast((cast(Year(@begintime)asvarchar(4))+'-'+cast(@tempbeginasvarchar(2))+'-123:59:59.997')asdatetime))))
from(selecttop(datediff(mm,@begintime,@endtime)+1)((row_number()over(orderbyID))-1)tempNumfromsyscolumns)a
end
if@condition='Week'
begin
declare@tempbegintimeasdatetime
SETDATEFIRST1;
select@tempbegintime=dateadd(dd,(Datepart(wk,@begintime)-1)*7-Datepart(dw,cast(Year(@begintime)asvarchar(4))+'-1-1')+1,cast(Year(@begintime)asvarchar(4))+'-1-1')
--insertinto#
select
dateadd(dd,0,@tempbegintime),convert(varchar(10),dateadd(dd,(casewhen(datediff(wk,@begintime,@endtime)+1)>4then4*7else(Datepart(wk,@endtime)-Datepart(wk,@begintime)+1)*7end),@tempbegintime),120)+'23:59:59.997'
end
selecta.*fromtc_dataainnerjoin#bona.create_timebetweenb.begintimeandb.endtime
droptable#
end
go
/*
--測試
execdbo.Usp_Getdata'Year','2014-01-01','2014-01-01';
execdbo.Usp_Getdata'Quarter','2014-01-01','2015-01-01';
execdbo.Usp_Getdata'Month','2014-01-01','2015-01-01';
execdbo.Usp_Getdata'Week','2014-06-15','2015-01-01';
execdbo.Usp_Getdata'Week','2014-06-15','2014-06-28';
execdbo.Usp_Getdata'Week','2014-01-01','2015-01-01';
*/

❹ 關於MSSQL存儲過程

使用參數方式調用存儲過程就行了

<%
var Command1 = Server.CreateObject("ADODB.Command");
Command1.ActiveConnection = GetConn(); '資料庫連接
Command1.CommandText = "dbo.xp_dgdb_Service"; '存儲過程名
Command1.CommandType = 4;
Command1.CommandTimeout = 0;
Command1.Prepared = true;
Command1.Parameters.Append(Command1.CreateParameter("@RETURN_VALUE", 3, 4)); '以下添加參數
Command1.Parameters.Append(Command1.CreateParameter("@P_orgAddr", 200, 1,21,Command1__P_orgAddr));
Command1.Parameters.Append(Command1.CreateParameter("@p_destAddr", 200, 1,21,Command1__p_destAddr));
Command1.Parameters.Append(Command1.CreateParameter("@p_servicecode", 200, 1,20,Command1__p_servicecode));
Command1.Parameters.Append(Command1.CreateParameter("@p_msg", 200, 1,200,Command1__p_msg));
Command1.Parameters.Append(Command1.CreateParameter("@LinkId", 200, 1,20,Command1__LinkId));
Command1.Parameters.Append(Command1.CreateParameter("@p_ret", 3, 2));
Command1.Execute(); '執行存儲過程
%>

具體的可以在網路網頁找一下,很多的

❺ mssql存儲過程

改為:
declare @j int
select @j=0
exec('select top 1 編號 from salaryp where 編號 not in(select top '+@j+' 編號 from salaryp ) ')
用動態執行的語句就可以了,變數應該只能在後面條件中用吧,如果想在前面用的話 就要用exec來執行吧

❻ mssql 的 存儲過程 變數賦值問題

自動生成的id 一般是增量的,所以用提取最大值的方法取的最新ID,
設表TABLE0有欄位ID,FIELD1,FIELD2,FIELD3四個欄位,這樣:
DECLARE @NEWID INT--聲明新ID變數
INSERT INTO TABLE0(FIELD1,FIELD2,FIELD3) SELECT FIELD1 FIELD2 FIELD3 FROM TABLE1 WHERE FIELD1='XXXX' .......--插入語句
IF @@ROWCOUNT>0 --如果插入了新行
SET @NEWID=(SELECT MAX(ID) FROM TABLENAME) --給新ID賦值
select @newid as 新ID --使用該變數

❼ MSSQL資料庫中定時存儲的存儲過程

您好!要實現你要的功能;操作如下:
一、可以先寫好存儲過程的內容;放在目標資料庫中
二、在MSSQL的SQL server代理——〉作業——〉新建一個作業 在[常規]選項卡中 設置 名稱AUTOZY——〉在[步驟]選項卡中 點擊[新建作業]
三、在彈出的作業步驟窗口中;填寫步聚名稱(自己取一個)--運行身份選擇SA或者WINDOWS運行都可以---在資料庫處選擇 目標資料庫(這步很關鍵)---
在命令 處 寫 exec 存儲過程的名稱(這個不要寫錯)---點擊[確定] 返回上級窗口
四、選擇[計劃]選項卡 --在計劃窗口中可以具體設置怎麼樣定時運行的方案
五、設置好後 [確定]返回上級窗口---再點擊[確定]保存了這個作業
如有不明之處;歡迎CALL 我

❽ MSSQL的存儲過程怎麼寫

-- =============================================
-- Create procere basic template
-- =============================================
-- creating the store procere
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'<procere_name, sysname, proc_test>'
AND type = 'P')
DROP PROCEDURE <procere_name, sysname, proc_test>
GO

CREATE PROCEDURE <procere_name, sysname, proc_test>
<@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>,
<@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>
AS
SELECT @p1, @p2
GO

-- =============================================
-- example to execute the store procere
-- =============================================
EXECUTE <procere_name, sysname, proc_test> <value_for_param1, , 1>, <value_for_param2, , 2>
GO

❾ 使用存儲過程將csv導入MSSQL資料庫

我們先在SQL Server中建立用於保存該信息的一張數據表, 例如:
CREATE TABLE CSVTable(
Name NVARCHAR(MAX),
Email NVARCHAR(MAX),
Area NVARCHAR(MAX)
)
然後執行下面的SQL語句:
BULK INSERT CSVTable
FROM 'D:\csv.txt'
WITH(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
SELECT * FROM CSVTable
就可以看到結果,如果做成存儲過程,可以把導入的文件名、分隔符,換行符做成存儲過程的參數,也就是上述語句中的'D:\csv.txt',','和'\n'。
判斷那個文件已經導入,可以使用一個表來存儲上次導入的文件名,同時把A生成的文件名中帶上日期時間標記,用時間來判斷。也可以在存儲過程中直接生成帶日期時間的文件名,直接打開對應的文件。

❿ mssql存儲過程

MS
SQL基礎教程:創建存儲過程
在MS
SQL
Server
2000
中,創建一個存儲過程有兩種方法:一種是使用Transaction-SQL
命令Create
Procere,
另一種是使用圖形化管理工具Enterprise
Manager。
用Transaction-
SQL
創建存儲過程是一種較為快速的方法,但對於初學者,使用Enterprise
Manager
更易理解,更為簡單。
當創建存儲過程時,需要確定存儲過程的三個組成部分;
所有的輸入參數以及傳給調用者的輸出參數。
被執行的針對資料庫的操作語句,包括調用其它存儲過程的語句;
返回給調用者的狀態值,以指明調用是成功還是失敗。
12.2.1
使用Enterprise
Manager
創建存儲過程
按照下述步驟用Enterprise
Manager
創建一個存儲過程:
啟動Enterprise
Manager,
登錄到要使用的伺服器。
選擇要創建存儲過程的資料庫,在左窗格中單擊Stored
Procere
文件夾,此時在右窗格中顯示該資料庫的所有存儲過程,如圖12-1
所示。
右擊Stored
Procere
文件夾,在彈出菜單中選擇New
Stored
Procere,
此時打開創建存儲過程對話框,
輸入存儲過程正文。
單擊Check
Syntax,
檢查語法是否正確。
單擊OK,
保存。
在右窗格中,右擊該存儲過程,在彈出菜單中選擇All
task,
選擇
ManagePermissions,
設置許可權,
12.2.2
用CREATE
PROCEDURE
命令創建存儲過程
通過運用Create
Procere
命令能夠創建存儲過程,在創建存儲過程之前,應該考慮到以下幾個方面:
在一個批處理中,Create
Procere
語句不能與其它SQL
語句合並在一起;
資料庫所有者具有默認的創建存儲過程的許可權,它可把該許可權傳遞給其它的用戶;
存儲過程作為資料庫對象其命名必須符合命名規則;
只能在當前資料庫中創建屬於當前資料庫的存儲過程。
用Create
Procere
創建存儲過程的語法規則如下:
CREATE
PROC
[
EDURE
]
procere_name
[
;
number
]
[
{
@parameter
data_type
}
[
VARYING
]
[
=
default
]
[
OUTPUT
]
]
[
,...n
]
[
WITH
{
RECOMPILE
|
ENCRYPTION
|
RECOMPILE
,
ENCRYPTION
}
]
[
FOR
REPLICATION
]
AS
sql_statement
[
...n
]

熱點內容
sqlsa默認密碼 發布:2025-09-23 02:36:50 瀏覽:142
安卓什麼手機地圖好用 發布:2025-09-23 02:35:14 瀏覽:447
古老八字演算法 發布:2025-09-23 02:32:15 瀏覽:653
mssql存儲過程查詢 發布:2025-09-23 02:30:43 瀏覽:869
androidtextview行數 發布:2025-09-23 02:29:59 瀏覽:23
aspnetmvc4上傳文件 發布:2025-09-23 02:20:54 瀏覽:519
安卓pmu什麼意思 發布:2025-09-23 02:12:54 瀏覽:658
天下霸圖腳本 發布:2025-09-23 01:45:47 瀏覽:279
md5加密技術 發布:2025-09-23 01:45:07 瀏覽:510
c程序編譯的目的是什麼 發布:2025-09-23 01:45:06 瀏覽:48