sql server 存储过程语法create PROCEDURE [dbo].[Adm_ColumQuery]
@Alevelsvarchar(6), -----企业成员代码(3位数)
@StrWhere nvarchar(100)
as
begin
declare @sqlStr nvarchar(1000)-----主查询语句
set @sqlStr='select AaID,AsortID,AnavbarName,Alevels,
case Parent when 0 then '' '' end as Parent,
Unum ,
Alinkpath ,
case EnableStatus when 0 then ''在用''
when 1 then ''作废'' end as EnableStatus
from tAdminAuthority where Alevels = '+@Alevels + @StrWhere+'order by AsortID';
exec (@sqlStr)end我自己更改的mysql存储过程 代码,没有测试,不知道是否可用。DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `Adm_LogQuery`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `Adm_LogQuery`(
strWhere VARCHAR(500)
)
BEGIN
DECLARE sqlStr VARCHAR(1000);
SET @sqlStr='select * from tLog where 1=1 '+@strWhere+' ORDER BY opTime desc';
END$$
DELIMITER ;另外sql server有的存储过程需要返回参数,我用的是mysql自定义函数,现在请教,mysql中如何获取申明的值啊?以下是 sql server的存储过程,mysql如何调用声明的值呢?create PROCEDURE [dbo].[Adm_ProductNormAdd]
@NormName nvarchar(20),-----名称
@NormID varchar(20),----ID
@NOrmLeves int,------比例级别...省略代码declare @rID varchar(10)-----产品规格自增编号
if(exists(select RulsName from tDataRuls where RulsName=@NormName ))
begin
return -1;----产品规格名称存在
end
if(exists (select RulsID from tDataRuls where RulsID=@NormID ))
begin
return -2;-----识别码存在
endinsert into tDataRuls
(RulsName, RulsID, transUnits, transUnitRelate, OutsidedataStart, GreatNumber, QueryIntegral, QueryNum,
QueryRepeatInPass, QueryWay, QueryProcess, OkQueryID, isEnable, RulsNote)
values
(@NormName,@Normid,@NormLeves,@NormUnit,@outdatastart,'0',@QueryIntegral,@QueryNum,
@QueryRepeatInPass,@QueryWay,@QueryProcess,@OkQueryID ,@isEnable,@RulsNote )
@Alevelsvarchar(6), -----企业成员代码(3位数)
@StrWhere nvarchar(100)
as
begin
declare @sqlStr nvarchar(1000)-----主查询语句
set @sqlStr='select AaID,AsortID,AnavbarName,Alevels,
case Parent when 0 then '' '' end as Parent,
Unum ,
Alinkpath ,
case EnableStatus when 0 then ''在用''
when 1 then ''作废'' end as EnableStatus
from tAdminAuthority where Alevels = '+@Alevels + @StrWhere+'order by AsortID';
exec (@sqlStr)end我自己更改的mysql存储过程 代码,没有测试,不知道是否可用。DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `Adm_LogQuery`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `Adm_LogQuery`(
strWhere VARCHAR(500)
)
BEGIN
DECLARE sqlStr VARCHAR(1000);
SET @sqlStr='select * from tLog where 1=1 '+@strWhere+' ORDER BY opTime desc';
END$$
DELIMITER ;另外sql server有的存储过程需要返回参数,我用的是mysql自定义函数,现在请教,mysql中如何获取申明的值啊?以下是 sql server的存储过程,mysql如何调用声明的值呢?create PROCEDURE [dbo].[Adm_ProductNormAdd]
@NormName nvarchar(20),-----名称
@NormID varchar(20),----ID
@NOrmLeves int,------比例级别...省略代码declare @rID varchar(10)-----产品规格自增编号
if(exists(select RulsName from tDataRuls where RulsName=@NormName ))
begin
return -1;----产品规格名称存在
end
if(exists (select RulsID from tDataRuls where RulsID=@NormID ))
begin
return -2;-----识别码存在
endinsert into tDataRuls
(RulsName, RulsID, transUnits, transUnitRelate, OutsidedataStart, GreatNumber, QueryIntegral, QueryNum,
QueryRepeatInPass, QueryWay, QueryProcess, OkQueryID, isEnable, RulsNote)
values
(@NormName,@Normid,@NormLeves,@NormUnit,@outdatastart,'0',@QueryIntegral,@QueryNum,
@QueryRepeatInPass,@QueryWay,@QueryProcess,@OkQueryID ,@isEnable,@RulsNote )
解决方案 »
- 我把linux下的mysql文件夹拷贝了下来,想在windows下的mysql上恢复数据
- 隐藏数据ip 地址方案 可行性??????????
- [数据库升级问题] 请教 对 数据库中字段做修改/增加/删除 后保证用户正常的数据
- 如何找相同列中最大的值
- 如何在a 机器的mysql数据库的sql语句访问b机器的mysql数据库
- 求解决该问题的sql语句,大家帮我一下,谢谢!
- null问题
- MySQL如何进行多线程控制?
- 求个sql语句
- 建立一个账号abc 对test库的test表有DELETE 测试的时候竟然能插入 能查询 求大神给指点
- 两站表,三个关联,从其中查询出每个政府下的合作社和合作社社员数量!给分50!
- mysql 局域网同步外网
strWhere VARCHAR(500)
)
BEGIN
DECLARE sqlStr VARCHAR(1000);
SET sqlStr=CONCAT('select * from tLog where 1=1 ',strWhere,' ORDER BY opTime DESC');
SET @sqlStr=sqlStr;
PREPARE stmt FROM @sqlStr;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
SELECT convert(nvarchar(1), 1) + convert(nvarchar(1), 1) 直接写成 SELECT 1 + 1 就成了求和了。而MYSQL 字段类型为数字时,想拼接而不是求和, 直接 SELECT CONCAT(1,1) 就OK了。
但是convert 要求格式严格呀,我开始就在拼接的时候,前后少了个空格 死活执行不了。