SQL如果是admin,则返回所有行,否则返回用户记录

时间:2014-03-14 20:42:17

标签: asp.net sql sql-server filter where

使用SQL DataSource 时,我想返回与当前登录的用户基本相关的记录。我能做到这一点,就好了。

但是,当用户表中的登录用户被标记为“ADMIN”时,我想返回所有行。

字段

Name  
Address  
databaseid  
IsAdmin  

ASP.net页面发送@databaseid

SQL Server仅为Name用户返回Address@databaseid。完美!

但我希望返回表中的所有内容,如果IsAdmin = 1为给定的数据库用户名。

我正在使用SP来返回记录。基本上忽略过滤器。

1 个答案:

答案 0 :(得分:1)

你能修改存储过程吗?如果是,则更改select stmt:

SELECT Name, Address, databaseid, IsAdmin
FROM YourTableName
WHERE databaseid = @databaseid
      OR 1 = (SELECT IsAdmin 
              FROM YourTableName
              WHERE databaseid = @databaseid);