笔记118 根据传入不同的@Uname查询不同的表的存储过程
笔记118 根据传入不同的@Uname查询不同的表的存储过程
1 --根据传入不同的@Uname查询不同的表的存储过程 2 --我现在有4个表:User表 Expert表 Enterprise表 CommentSite表 3 -- 4 --现在要显示CommentID,CommentPoster,CommentContent,CommentPostedTime,Name 5 --由于发布者的类型不同不知道是ExpertName还是EnterpriseName 6 --请问这个Select语句该怎么写 7 USE [test] 8 GO 9 /****** Object: StoredProcedure [dbo].[GetUserInFo] Script Date: 08/20/2012 16:08:05 ******/ 10 SET ANSI_NULLS ON 11 GO 12 SET QUOTED_IDENTIFIER ON 13 GO 14 CREATE PROC [dbo].[GetUserInFo] @Uname VARCHAR(100) 15 AS 16 DECLARE @Usertype INT 17 SELECT @Usertype = UserType 18 FROM [User] 19 WHERE UserName = @Uname 20 IF @Usertype = 1 21 BEGIN 22 SELECT a.CommentID , 23 a.CommentPoster , 24 a.CommentContent , 25 a.CommentPostedTime , 26 b.ExpertName 27 FROM Commentsite AS a WITH ( NOLOCK ) 28 INNER JOIN Expert AS b WITH ( NOLOCK ) ON a.CommentPoster = b.UserName 29 END 30 ELSE 31 BEGIN 32 SELECT a.CommentID , 33 a.CommentPoster , 34 a.CommentContent , 35 a.CommentPostedTime , 36 b.EnterpriseName 37 FROM Commentsite AS a WITH ( NOLOCK ) 38 INNER JOIN Expertprise AS b WITH ( NOLOCK ) ON a.CommentPoster = b.UserName 39 END