【问题标题】:SQL Return all rows if admin, otherwise return user recordsSQL 如果管理员返回所有行,否则返回用户记录
【发布时间】:2014-04-20 08:32:54
【问题描述】:

当使用SQLDataSource 时,我想返回与当前登录的用户 相关的记录。这个我可以,很好。

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

字段:

Name  
Address  
databaseid  
IsAdmin  

ASP.net 页面发送@databaseid

SQL 服务器仅针对 @databaseid 用户返回 Name 和 Address。完美!

但如果IsAdmin = 1 对应给定的数据库用户ID,我想返回表中的所有内容。

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

【问题讨论】:

  • 如果是管理员,您想返回所有记录吗?

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


【解决方案1】:

你能修改存储过程吗?如果是,那么改变select stmt:

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

【讨论】:

  • 非常感谢。完美运行!我知道我需要使某些东西与其他东西相等……但没有考虑子选择。
猜你喜欢
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 1970-01-01
  • 2019-05-26
  • 2020-07-06
  • 1970-01-01
相关资源
最近更新 更多