2015-01-09 52 views
0

我正在運行SSRS報告,而我的數據源是FetchXML。從表中選擇時是否有可能返回標量值?

不幸的是,使用FetchXML,您無法運行存儲過程或函數。

這個問題可以問了幾個不同的方式:

  1. 我如何傳遞一個函數到FetchXML的價值?
  2. 而不是做好上面的,是有可能只需要創建一個表或視圖tbl_finduserGUID將返回功能dbo.fn_finduserguid()的價值?
  3. 或者有更好的方式通過SSRS/FetchXML獲取當前用戶的數據庫角色?

這裏是我的查詢將被轉換爲fetchxml:

SELECT systemuser.fullname AS 'fullname', 
     usersettings.calendartype AS 'calendartype', 
     usersettings.uilanguageid AS 'uilanguageid' 
FROM filteredsystemuser AS systemuser 
     INNER JOIN filteredusersettings AS usersettings 
       ON systemuser.systemuserid = usersettings.systemuserid 
WHERE systemuser.systemuserid = dbo.Fn_finduserguid() 

這裏的dbo.fn_finduserguid()的源

SET ansi_nulls ON 

go 

SET quoted_identifier ON 

go 

ALTER FUNCTION [dbo].[Fn_finduserguid]() 
returns UNIQUEIDENTIFIER 
AS 
    BEGIN 
     DECLARE @userGuid UNIQUEIDENTIFIER 

     --- test whether the query is runing by priviledged user with user role of CRMReaderRole 
     --- if it is dbo, we trust it as well. 
     --- There is an issue in SQL. If the user is a dbo, if it not member of any role 
     IF (Is_member('CRMReaderRole') | Is_member('db_owner')) = 1 
     BEGIN 
      SELECT @userGuid = Cast(Context_info() AS UNIQUEIDENTIFIER) 
     END 

     IF @userGuid IS NULL 
     BEGIN 
      SELECT @userGuid = s.systemuserid 
      FROM systemuserbase s 
      WHERE s.domainname = Suser_sname() 
     END 

     RETURN @userGuid 
    END 

回答

1

你應該沒有問題,創造一種觀點認爲,選擇函數作爲列。

Create view vFindUserGuid 
As 
    Select dbo.Fn_finduserguid() as userguid 

你的查詢,則可以使用視圖像一個正常的表

SELECT systemuser.fullname AS 'fullname', 
    usersettings.calendartype AS 'calendartype', 
    usersettings.uilanguageid AS 'uilanguageid' 
FROM filteredsystemuser AS systemuser 
    INNER JOIN filteredusersettings AS usersettings 
      ON systemuser.systemuserid = usersettings.systemuserid 
WHERE systemuser.systemuserid = (select userguid from vfinduserguid) 
+0

感謝這麼多,這裏是我的嘗試:http://screencast.com/t/hbWvfmYmT和http://截屏.com/t/8UByawO31 –

+0

我已更新我的回答 – Spock

+0

謝謝!!!!!! –

相關問題