sqlserver存储过程

Sqlserver存储过程生成日期维度

浪尽此生 提交于 2019-12-25 18:22:50
话不多说,之前已经有一篇日志是利用oracle的存储过程生成日期维度表,接下来我们就用sqlserver来实现这个操作,如下面的步骤所示 1:创建日期维度表(Dim_time) USE [DW] GO /****** Object: Table [dbo].[Dim_time] Script Date: 12/19/2015 15:29:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Dim_time]( [the_date] [int] NOT NULL, [date_name] [nvarchar](30) NULL, [the_year] [int] NULL, [year_name] [nvarchar](30) NULL, [the_quarter] [int] NULL, [quarter_name] [nvarchar](30) NULL, [the_month] [int] NULL, [month_name] [nvarchar](30) NULL, [the_week] [int] NULL, [week_name] [nvarchar](30) NULL, [week_day] [int] NULL, [week_day_name]

SQLServer存储过程

别说谁变了你拦得住时间么 提交于 2019-12-24 11:59:26
最基础的存储过程 新建存储过程 CREATE PROCEDURE PR_Sum12 AS BEGIN update formtable_main_122 set fzybcp = '4' WHERE requestid = 26275 END go 修改存储过程 ALTER PROCEDURE PR_Sum12 AS BEGIN update formtable_main_122 set fzybcp = '6' WHERE requestid = 26275 END go 执行存储过程 exec PR_Sum12 进阶存储过程 修改存储过程 ALTER PROCEDURE judge_MachineType @requestid int AS declare @machineSumOne int, @machineSumTwo int BEGIN declare my_cursor_one cursor for SELECT COUNT(*) as machineSum FROM formtable_main_122_dt1 dt1 WHERE dt1.mainid = ( SELECT id FROM formtable_main_122 main WHERE main.requestid = @requestid ) AND dt1.machineType!= 0

SqlServer存储过程详解

非 Y 不嫁゛ 提交于 2019-12-19 09:44:05
SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name')) drop proc pro_name go create proc pro_name @param_name param_type [=default_value] as begin sql语句 end ps:[]表示非必写内容。sys.objects存储的是本数据库中的信息,不仅仅存储表名,还有存储过程名 、视图名、触发器等等。 例如: 1 if (exists (select * from sys.objects where name = 'USP_GetAllUser')) 2 drop proc USP_GetAllUser 3 go 4 create proc USP_GetAllUser 5 @UserId int =1 6 as 7 set nocount on; 8 begin 9 select * from UserInfo where Id=@UserId 10 end ps:SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条

SqlServer存储过程多条件分页

青春壹個敷衍的年華 提交于 2019-12-18 19:25:42
–多条件分页 alter proc Paging ( @PageIndex int, @PageSize int, @DName varchar(50)=’’, @BName varchar(50)=’’, @PageCount int=0 out ) as begin –定义一个Nvarchar的恒成立的Sql语句 declare @Sql Nvarchar(1000) = N’select * from Zong where 1 = 1 ’ –判断查询框DName是否有值 if(len(@DName)>0) –有值就把这句sql语句拼接到恒成立的sql语句里 set @Sql += ’ and DName like ‘’%’+@DName+’%’’’ –判断查询框BName是否有值 if(len(@BName)>0) –有值就把这句sql语句拼接到恒成立的sql语句里 set @Sql += ’ and BName = ‘+@BName+’’ –把拼接的字符串转成表明别名TT set @Sql = ‘(’+@Sql+’)TT’ –总记录数 declare @SqlCount Nvarchar(1000) = N’select @PageCount = count( ) from’+@Sql –系统存储过程拼接字符串 exec sp_executesql @sqlCount,N’

带参数的存储过程

百般思念 提交于 2019-12-06 13:03:25
带参数的存储过程 创建带参数的sql存储过程:创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用惟一的名称进行定义。与标准的Transact-SQL变量相同,参数名必须以@为前缀, 创建带参数的存储过程 创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用惟一的名称进行定义。与标准的Transact-SQL变量相同,参数名必须以@为前缀,并且遵从对象标识符规则。当用户不提供该参数的值时可以使用一个默认值来代替。 在执行带参数的存储过程时,既可以通过显式指定参数名称并赋予适当的值,也可以通过提供在CREATE PROCEDURE语句中给定的参数值(不指定参数名称)来向存储过程传递值。 在存储过程PRO_Student_IN中命名4个参数,其定义顺序为@Chinese、@English、@maths和@class。 例如,将值传递给存储过程指定的参数名称。 EXEC PRO_Student_IN @class="三年一班",@Chinese=85,@maths=85,@English=85 例如,按照参数的位置传递,而不命名参数名称。 EXEC PRO_Student_IN 85,85,85,"三年一班" 1.不带默认值的参数 创建一个参数不带默认值的存储过程,在调用该存储过程时,必须对存储过程中的所有参数进行赋值,如果有一个参数没有赋值

SQLServer数据库开发

巧了我就是萌 提交于 2019-12-05 16:57:24
SQLServer数据库开发 1、T-SQL编程 1变量 局部变量 局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以 “@” 开头,而且必须先用 DECLARE 命令说明后 才可使用。其说明形式如下 : DECLARE @ 变量名 变量类型 [@ 变量名 变量类型 …] 例如:DECLARE @id char(10) —–声明一个长度为10的字符变量 全局变量 全局变量不是由用户的程序定义的,它们是在服务器级定应义的。只能使用预先说明及定义的变局变量。引用全局变量时,必须以“@@”开头。局部变量的名称不能与全局变量的名称相同、否则会在应用中出错。 常用全局变量 @@ERROR 最后一个T-SQL错误的错误号 @@IDENTITY 最后一次插入的标识值 @@LANGUAGE 当前使用的语言的名称 @@MAX_CONNECTIONS 可以创建的同时连接的最大数目 @@ROWCOUNT 受上一个SQL语句影响的行数 @@SERVERNAME 本地服务器的名称 @@TRANSCOUNT 当前连接打开的事务数 @@VERSION SQL Server的版本信息 例如: select @@VERSION as w --返回SQL服务器安装的日期、版本和处理器类型。2输出语句 使用print

sqlserver设置执行存储过程的时间

匿名 (未验证) 提交于 2019-12-02 23:42:01
打开SQL Server Management Studio,SQL Server代理--作业--点右键--新建作业 作业的名称取为:test 并进行说明,若作业的数量太多,以方便区别; 这里写上定时执行存储过程Pr_test 确定保存. 点击常规下面的步骤,按箭头指示,新建步骤. 取名步骤名称:exec pr_test 注意选择存储过程所在的数据库 录入需要执行的命令:exec pr_test ,确定保存. 若有其它参数命令也可以编写 接下来设置计划,自动定时执行的时间. 新建计划,进放计划属性设置窗口. 6 依然要填写计划的名称:exec pr_test 计划类型:重复计划 时间频率:每月的26日的12点30分自动执行一次 持续时间:无结束日期 确定保存.到此基本功能已经设置完成,额外其它功能可以根据需要进行增加.

asp.net执行SqlServer存储过程!(详解!)

匿名 (未验证) 提交于 2019-12-02 23:32:01
原文: https://www.cnblogs.com/accumulater/p/6255305.html ASP.NET执行存储过程 一. 执行一个没有参数的存储过程的代码如下: connectionString为连接字符串 SqlConnection conn=new SqlConnection(connectionString); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = new SqlCommand(); da.SelectCommand.Connection = conn; //myProc存储过程的名字 da.SelectCommand.CommandText = “myProc”; da.SelectCommand.CommandType = CommandType.StoredProcedure; 二. 执行一个有参数的存储过程的代码如下 SqlConnection conn=new SqlConnection(connectionString); SqlDataAdapter da = new SqlDataAdapter(); da.selectCommand = new SqlCommand(); da.selectCommand.Connection = conn; da

sqlserver存储过程里传字段、传字符串,并返回DataTable、字符串,存储过程调用存储过程。

僤鯓⒐⒋嵵緔 提交于 2019-11-30 07:37:47
经常需要查一些信息, 想写视图来返回数据以提高效率,但是用试视图不能传参,只好想到改存储过程。记录一下语法,方便以后做项目时候想不起来了用。 1:传字段返回datatable 2: 传字段回一串字符 3: 传字符串返回datable 4:存储过程调用存储过程 --加半个小时 (select dateadd(MINUTE,30,GETDATE() ))--UnLockTime 往后加半个小时 CONVERT(varchar(100), @UnLockTime, 20) --转成可以拼接字符串的格式 set @strOutput='0~由于您最近输错5次密码已被锁定,请在'+CONVERT(varchar(100), @UnLockTime, 20) +'之后再尝试登录~'+CAST(@Id AS NVARCHAR(10)) 1:传字段返回datatable 1 //传字段返回datatable 2 USE [ ] 3 GO 4 5 /****** Object: StoredProcedure [dbo].[proc_getIsAPProveRoleUserIdSelect] Script Date: 9/23/2019 10:35:46 AM ******/ 6 SET ANSI_NULLS ON 7 GO 8 9 SET QUOTED_IDENTIFIER ON 10 GO 11

SqlServer单步调试

为君一笑 提交于 2019-11-29 21:25:24
sqlserver单步调试工具: 1、打开工具,进入数据库 2、找到存储过程 3、选择要调试的存储过程 4、 右键“执行存储过程”,会弹出如下的界面,要输入存储过程所用的参数 5、输入参数 6、参数输入后点击确定,系统会为你生成如下的代码到编辑器中 7、点击工具条“调试”绿色的小三角按钮,进入调试界面,再按 F11 逐步调试,注意,这里有一个关键点,当代码执行到EXEC这一行时会进到这个存储过程中去 8、进入存储过程再按 F11 ,会显示相关参数的值 9、可点击查看完整的参数 选择文本可视化工具 来源: https://www.cnblogs.com/kiko2014551511/p/11533225.html