当前位置:首页 » 存储配置 » 存储过程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
]

热点内容
关系数据库关系运算 发布:2025-09-23 01:16:48 浏览:575
androidpngjpg 发布:2025-09-23 01:13:47 浏览:847
squid配置FTP 发布:2025-09-23 01:09:57 浏览:126
源码和模版 发布:2025-09-23 00:53:40 浏览:889
安卓光遇正版是哪个 发布:2025-09-23 00:38:43 浏览:975
vb图片压缩 发布:2025-09-23 00:38:43 浏览:421
友善访问团 发布:2025-09-23 00:34:23 浏览:542
fm2015清除缓存 发布:2025-09-23 00:29:00 浏览:605
c并发编程书 发布:2025-09-23 00:21:52 浏览:996
华为怎么下载安卓的光遇 发布:2025-09-23 00:02:29 浏览:506