--查询权限函数
--1
declare @names varchar(3000)
set @names=''
select @names=@names+isnull(AdminPermissFormName,'')+' , ' from BookAdminPermissTypeList where AdminPermissTypeID in(8,9,10)
set @names=left(@names,len(@names)-1)
print @names
select @names --2
declare @sql nvarchar(4000),@where nvarchar(1000)
set @sql=''
set @where='8,9,10'
set @sql=@sql+'declare @names varchar(3000)'
set @sql=@sql+' set @names='''''
set @sql=@sql+' select @names =@names +isnull(AdminPermissFormName,'''')+'' , '' from BookAdminPermissTypeList where AdminPermissTypeID in('+@where+')'
set @sql=@sql+' set @names=left(@names,len(@names)-1)'
set @sql=@sql+' select @names'
print @sql
--exec (@sql)
exec sp_executesql @sql --不可以用
if exists(select 1 from sysobjects where name = 'f_GetAdminPermissFormFullName' and xtype = 'FN')
drop function f_GetAdminPermissFormFullName
go
CREATE function f_GetAdminPermissFormFullName
(
@AdminPermissTypeID nvarchar(1000)
)
returns nvarchar(1000)
as
begin
declare @sql nvarchar(4000),@re nvarchar(1000)
set @sql=''
--set @where='8,9,10'
set @sql=@sql+'declare @names varchar(3000)'
set @sql=@sql+' set @names='''''
set @sql=@sql+' select @names =@names +isnull(AdminPermissFormName,'''')+'' , '' from BookAdminPermissTypeList where AdminPermissTypeID in('+@AdminPermissTypeID+')'
set @sql=@sql+' set @names=left(@names,len(@names)-1)'
set @sql=@sql+' return @names'
return exec(@sql)
end
go

用存储过程:

CREATE PROCEDURE proc_Select_BookAdminPermissAssignment
(
@AdminPermissTypeID varchar(1000)
)
AS
declare @sql varchar(4000)
set @sql=''
set @sql=@sql+'declare @names varchar(3000)'
set @sql=@sql+' set @names='''''
set @sql=@sql+' select @names =@names +isnull(AdminPermissFormName,'''')+'' , '' from BookAdminPermissTypeList where AdminPermissTypeID in('+@AdminPermissTypeID+')'
set @sql=@sql+' set @names=left(@names,len(@names)-1)'
set @sql=@sql+' select @names'
exec (@sql)
GO

sql:function的更多相关文章

  1. [.NET] 使用C#开发SQL Function来提供服务 - 简讯发送

    [.NET] 使用C#开发SQL Function来提供服务 - 简讯发送 范例下载 范例程序代码:点此下载 问题情景 在「使用C#开发SQL Function来提供数据 - 天气预报」这篇文章中,介 ...

  2. [.NET] 使用C#开发SQL Function来提供数据 - 天气预报

    [.NET] 使用C#开发SQL Function来提供数据 - 天气预报 范例下载 范例程序代码:点此下载 问题情景 开发人员在设计一些数据汇整的系统服务时,可能会选择WCF.WebAPI.Sign ...

  3. SQL Function 自定义函数

    目录 产生背景(已经有了存储过程,为什么还要使用自定义函数) 发展历史 构成 使用方法 适用范围 注意事项 疑问   内容 产生背景(已经有了存储过程,为什么还要使用自定义函数) 与存储过程的区别(存 ...

  4. SQL Function(方法)

    1.为什么有存储过程(procedure)还需要(Function) fun可以再select语句中直接调用,存储过程是不行的. 一般来说,过程显示的业务更为复杂:函数比较有针对性. create f ...

  5. sql function递归

    alter function Fn_GetUserGroupRelation ( @DHsItemID int ) returns nvarchar(1024) begin declare @Col_ ...

  6. Oracle sql function LISTAGG

    select business_unit, voucher_id, listagg( vat_txn_type_cd, ',') within group (order by business_uni ...

  7. php-sql-parser sql防注入脚本

    <?php /** * SQL Parser from: http://code.google.com/p/php-sql-parser/ * License: New BSD */ class ...

  8. SQL Server 2012 T-SQL 新特性

    序列 Sequence SQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下: CREATE SEQUENCE DemoSequence START WITH 1 INCRE ...

  9. Adding New Functions to MySQL(User-Defined Function Interface UDF、Native Function)

    catalog . How to Add New Functions to MySQL . Features of the User-Defined Function Interface . User ...

随机推荐

  1. dbproxy-id生成器

    id生成器使用的是snowflake, 需要执行 snowflake_init(region_id, worker_id); 而region_id和worker_id是在配置文件中配置的 networ ...

  2. javascript中children,childNodes等节点属性

    1.children与childNodes children: 获取子元素节点,无兼容问题 childnNodes: IE:获取子元素节点 非IE(chrome,Firefox等):获取子节点,包括元 ...

  3. 为什么我会选择走 Java 这条路?

    阅读本文大概需要 2.8 分钟.   作者:黄小斜 文章来源:微信公众号[程序员江湖] 最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C++.前端之类的方向呢,另外还有一些声音:研究 ...

  4. 1093 字符串A+B (20 分)

    #include <iostream> using namespace std; int main() { int n; string s1, s2; getline(cin,s1); g ...

  5. Rstudio常用快捷键 “原版+中文” 整理

  6. pip安装python库总是超时或出错的解决办法

    建个文件 ~/.pip/pip.conf, 内容如下 [global] timeout = index-url = http://pypi.douban.com/simple/ [install] u ...

  7. MonoGame2D - MonoGame的2D威力加强版

    简介MonoGame2D 是一款基于MonoGame的扩展工具包,对MonoGame的2D开发方面进行了扩展,主要增加了精灵,字体,地图,组件,GUI等游戏开发中的一些基本元素,以更方便快捷地进行2D ...

  8. Python——数据交换格式简要

    简单数据交换格式 CSV: 一般用  open()  函数和字符串拆分  split()  方法,但python有内置的csv模块 读: import csv with open(r"C:\ ...

  9. Java 高并发解决方案(电商的秒杀和抢购)

    转载:https://blog.csdn.net/icangfeng/article/details/81201575 电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对 ...

  10. QT 相关

    Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程.对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题. 解决方法一:在处理耗时操作中 ...