常用儲存過程集錦,都是一些mssql常用的一些,大家可以根據需要選擇使用。
常用儲存過程集錦,都是一些mssql常用的一些,大家可以根據需要選擇使用。
***************==分頁*************************=
/*分頁查詢資料*/
create procedure [dbo].[getrecordset]
@strsql varchar(8000),--查詢sql,如select * from [user]
@pageindexint,--查詢當頁號
@pagesize int--每頁顯示記錄
assetnocount on
declare @p1 int
declare @currentpage int
set @currentpage = 0
declare @rowcount int
set @rowcount = 0
declare @pagecount int
set @pagecount = 0
exec sp_cursoropen @p1 output,@strsql,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output --得到總記錄數
select @pagecount=ceiling(1.0*@rowcount/@pagesize) --得到總頁數
,@currentpage=(@pageindex-1)*@pagesize+1
select @rowcount,@pagecount
exec sp_cursorfetch @p1,16,@currentpage,@pagesize
exec sp_cursorclose @p1
set nocount off go
*************************使用者註冊*************************===
/* 使用者註冊,也算是新增吧
*/ create proc [dbo].[useradd]
( @loginid nvarchar(50), --登入帳號
@passwordnvarchar(50), --密碼
@email nvarchar(200) --電子信箱
) as
declare @userid int --使用者編號
--登入賬號已經被註冊
if exists(select loginid from tablename where loginid = @loginid)
begin
return -1;
end
--郵箱已經被註冊
else if exists(select email from tablename where email = @email)
begin
return -2;
end
--註冊成功
else
begin
select @userid = isnull(max(userid),100000)+1 from tablename
insert into tablename
(userid,loginid,[password],username,linknum,address,email,createtime,status)
values
(@userid,@loginid,@password,'','','',@email,getdate(),1)
return @userid
end
*************************=sql
server
系統儲存過程***************====
–1.給表中字段新增描述資訊
createtablet2 (idint
********************資料庫還原的儲存過程**********==
sql code
create proc killspid (@dbname varchar(20))
as begin
declare @sql nvarchar(500)
declare @spidint
set@sql='declare getspidcursorfor
select spid
from sysprocesses
where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetchnext from getspid
into @spid
while @@fetch_status <>-1
begin
exec('kill '+@spid)
fetch next from getspid
into @spid
end
close getspid
deallocate getspid
end go
作用:殺掉傳入資料庫中的活動程序以進行備份還原等獨佔操作
***************====阿拉伯數字轉大寫中文**********===
例:輸入12345,程式給出:壹萬貳仟叄佰肆拾伍
例:輸入10023040,程式給出:壹仟另貳萬叄仟另肆拾
解決方案之一(在sqlserver2000中測試通過):
sql code
create function fun_cgnum
(@num int)
returns varchar(100)
as begin
declare @temp int,@res int,@i tinyint
declare @str varchar(100),@no varchar(20),@unit varchar(16)
select @str='',@no='另壹貳叄肆伍陸柒捌玖',@unit='拾佰仟萬拾佰仟億'
set @temp=@num
select @i=0,@res=@temp%10,@temp=@temp/10
while @temp>0
begin
if @i=0
set@str=substring(@no,@res+1,1)
else
set @str=substring(@no,@res+1,1)+substring(@unit,@i,1)+@str
select @res=@temp%10,@temp=@temp/10
set @i=@i+1
end
set @str=substring(@no,@res+1,1)+substring(@unit,@i,1)+@str
set @str=replace(@str,'另拾','另')
set @str=replace(@str,'另佰','另')
set @str=replace(@str,'另仟','另')
set @str=replace(@str,'另拾','另')
set @str=replace(@str,'另萬','萬')
while @i>0
begin
set @str=replace(@str,'另另','另')
set @i=charindex('另另',@str)
end
set @str=replace(@str,'另萬','萬')
set @str=replace(@str,'億萬','億')
if right(@str,1)='另'
set @str=left(@str,len(@str)-1)
return @str
end go
--測試:有0和沒有0的情況
select dbo.fun_cgnum(900000000),dbo.fun_cgnum(903002051),dbo.fun_cgnum(903002050)
ps:有興趣的朋友可以繼續考慮有小數點以及新增單位(元/角/分)的情況
常用sql儲存過程集錦
1.給表中字段新增描述資訊 create table t2 id int,name char 20 go exec sp addextendedproperty ms description employee id user dbo,table t2,column id exec sp update...
sqlserver 常用儲存過程集錦
常用儲存過程集錦,都是一些mssql常用的一些,大家可以根據需要選擇使用。分頁 分頁查詢資料 create procedure dbo getrecordset strsql varchar 8000 查詢sql,如select from user pageindex int,查詢當頁號 pages...
MSSQL儲存過程
sqlserver 帶有返回值,儲存過程同時新增兩張表,並將第一張表的主鍵插入第二張表當中 2010 07 04 22 00 55 分類 sql 字型大小 訂閱 sql server 中,可以使用 scope identity identity ident current 來取得最後插入記錄的值值,...