2016-05-03 15 views
2

をバインドすることができませんでしたが、それを作るとマルチパート識別子「dbo.showSelectedTableは」

CREATE FUNCTION showSelectedTable(@code varchar(1)) RETURNS 
@tempEMP TABLE 
(id nvarchar(9),name nvarchar(20),mdname nvarchar(20),lname nvarchar(50), tgl datetime,adrs nvarchar(50),sex nvarchar(1),salary int,superssn nvarchar(9),dno nvarchar(3)) 

BEGIN 

DECLARE @temp1 TABLE (id nvarchar(9),name nvarchar(30),idmgr nvarchar(9),dtime datetime) 
DECLARE @temp2 TABLE (EmpName nvarchar(30),ProjectName nvarchar(30)) 

    if @code = 'E' 
     BEGIN 
     INSERT INTO @tempEMP 
      SELECT * 
      FROM employee 
     RETURN; 
     END 
    ELSE IF @code = 'D' 
     BEGIN   
      INSERT INTO @temp1 
       SELECT * 
       FROM department 
      RETURN; 
     END 
    ELSE IF @code = 'W' 
     BEGIN 
      INSERT INTO @temp2 
       SELECT e.fname,p.pname 
       FROM works_on W,employee E,project P 
       WHERE E.ssn = W.ssn AND W.pno = P.pnumber 
      RETURN; 
     END 
    RETURN; 
END

が、ときにそれを完了するためにしてみてください

マルチパート識別子「dbo.showSelectedTableが」バウンドすることができませんでした。私はこのメッセージを得た

select dbo.showSelectedTable 'W'

、呼び出そう。

誰でもこの問題を解決できますか?

+0

その他の注意:関数を作成するときにスキーマ名を確認してください。たとえば、 'CREATE FUNCTION [dbo] .showSelectedTable(@code varchar(1))' – Arulkumar

答えて

5

は、

select * from dbo.showSelectedTable('W') 

をこれを使用してそれはちょうどあなたがテーブルと同じようにテーブル値関数を扱い、Table-Valued Functionsです。

+0

はEコードの作業ですが、DとWは機能しません。なにか提案を? @Abdul – Student

関連する問題