一個儲存過程的問題!
我想實現是自動生成一個加Data時間為編號的列,然後把後邊的欄位插到表裡,大家給看下這個過程有什麼問題, 我這邊顯示的錯誤是說什麼varchar轉int是錯誤!
CREATE PROCEDURE insertTest
@name varchar(20),
@regist varchar(10),
@age int,
@password varchar(20),
@weiyibiaoshi varchar(50)=''
OUTPUT
AS
begin
declare
@num int,
@strNum varchar(6),
@Y varchar(4),
@M varchar(3),
@D varchar(3),
@YMD varchar(8),
@Date smalldatetime
set @Date=getdate()
set @Y=Cast(Year(@Date) as varchar(4))
set @Y=right(@Y,4)
set @M=cast(month(@Date) as varchar(3))
set @M='0'+@M
set @M=right(@M,2)
set @D=cast(day(@Date) as varchar(3))
set @D='0'+@D
set @D=right(@D,2)
set @YMD=@Y+@M+@D
begin transaction
set @num=cast(right(@regist,4) as int)
set @regist=SUBSTRING(@regist,1,8)
if @YMD=@regist
begin
set @num=@num+1
set @strNum=cast(@num as varchar(4))
set @strNum='000'+@strNum
set @strNum=right(@strNum,4)
set @weiyibiaoshi=@YMD+@strNum+''
end
else
begin
set @weiyibiaoshi=@YMD+'0001'
end
insert into test(regist_id,weiyibiaoshi,names,age,passwords) VALUES(@regist,@weiyibiaoshi,@name,@age,@password);
if @@error <> 0
begin
rollback transaction
return 0
end
else
begin
commit transaction
end
end
GO
{call insertTest('google','3','admin')}
有一張test表 欄位為:regist_id vachar,主鍵,weiyibiaoshi varchar,names varchar,age int,passwords varchar
CREATE PROCEDURE insertTest
@name varchar(20),
@regist varchar(10),
@age int,
@password varchar(20),
@weiyibiaoshi varchar(50)=''
OUTPUT
AS
begin
declare
@num int,
@strNum varchar(6),
@Y varchar(4),
@M varchar(3),
@D varchar(3),
@YMD varchar(8),
@Date smalldatetime
set @Date=getdate()
set @Y=Cast(Year(@Date) as varchar(4))
set @Y=right(@Y,4)
set @M=cast(month(@Date) as varchar(3))
set @M='0'+@M
set @M=right(@M,2)
set @D=cast(day(@Date) as varchar(3))
set @D='0'+@D
set @D=right(@D,2)
set @YMD=@Y+@M+@D
begin transaction
set @num=cast(right(@regist,4) as int)
set @regist=SUBSTRING(@regist,1,8)
if @YMD=@regist
begin
set @num=@num+1
set @strNum=cast(@num as varchar(4))
set @strNum='000'+@strNum
set @strNum=right(@strNum,4)
set @weiyibiaoshi=@YMD+@strNum+''
end
else
begin
set @weiyibiaoshi=@YMD+'0001'
end
insert into test(regist_id,weiyibiaoshi,names,age,passwords) VALUES(@regist,@weiyibiaoshi,@name,@age,@password);
if @@error <> 0
begin
rollback transaction
return 0
end
else
begin
commit transaction
end
end
GO
{call insertTest('google','3','admin')}
有一張test表 欄位為:regist_id vachar,主鍵,weiyibiaoshi varchar,names varchar,age int,passwords varchar
相關文章
- 儲存過程問題。。儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- mysql多次呼叫儲存過程的問題MySql儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- 儲存過程單引號問題儲存過程
- laravel建立一個儲存過程Laravel儲存過程
- MySQL儲存過程的許可權問題MySql儲存過程
- Hibernate呼叫oracle儲存過程的問題Oracle儲存過程
- 偶發的儲存過程呼叫效能問題的一次調優過程儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- ORACLE中儲存過程的許可權問題Oracle儲存過程
- MySQL儲存過程中的sql_mode問題MySql儲存過程
- java儲存過程呼叫servlet的授權問題Java儲存過程Servlet
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 學習一個簡單的儲存過程儲存過程
- oracle儲存過程!解決網友問題Oracle儲存過程
- Vector儲存物件的一個問題物件
- 儲存過程訪問其他使用者的表的問題儲存過程
- 解決儲存過程擷取錯誤的問題儲存過程
- 有關於儲存過程的一個笑話儲存過程
- 一個儲存過程編譯HANG住的分析儲存過程編譯
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- 呼叫者儲存過程訪問許可權問題儲存過程訪問許可權
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程儲存過程
- 一個SQL Server Sa密碼破解的儲存過程SQLServer密碼儲存過程
- 一個比較不錯的儲存過程分頁儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- oracle的儲存過程Oracle儲存過程
- 修改的儲存過程儲存過程
- mysql的儲存過程MySql儲存過程
- 儲存過程呼叫其他模式的儲存過程需要注意的地方儲存過程模式
- mysql儲存過程一例MySql儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- mysql返回一個結果集的儲存過程小例子MySql儲存過程
- Mysql 的儲存過程和儲存函式MySql儲存過程儲存函式
- 儲存過程與儲存函式儲存過程儲存函式