猿问

SQLServer2008中,存储过程中一个变量的值是由一个子查询得到的。这个该怎么写?

如题。

1 INSERT INTO [ApplicationLog]
2        ([AppServerID],[Class],[Level])
3 VALUES(@[AppServerID],@[Class],@[Level]);
4 --其中,AppServerID的值由下面的查询得到
5 SELECT AppServerID FROM AppServerConnection 
6 WHERE
7 AppID=@AppID AND ServerID=(SELECT a.ServerID FROM PCServer AS a WHERE a.IntranetIP = @IntranetIP

请问这个该怎么写成一个存储过程呀!!!谢谢!!!!

斯蒂芬大帝
浏览 696回答 4
4回答

忽然笑

INSERT INTO [ApplicationLog] ([AppServerID],[Class],[Level]) (SELECT AppServerID],@[Class],@[Level] FROM AppServerConnection WHERE AppID=@AppID AND ServerID=(SELECT a.ServerID FROM PCServer AS a WHERE a.IntranetIP = @IntranetIP)

慕容森

Declare @AppServerID nvarchar(50) --- or int   Select @AppServerID=AppServerID FROM AppServerConnection WHERE AppID=@AppID AND ServerID=(SELECT a.ServerID FROM PCServer AS a WHERE a.IntranetIP = @IntranetIP   Insert into....

翻翻过去那场雪

前辈你好!你看我这样写对吗! 1 SET ANSI_NULLS ON 2 GO 3 SET QUOTED_IDENTIFIER ON 4 GO 5 6 CREATE PROCEDURE [dbo].[prInsApplicationLog2] 7 @AppID int, 8 @Class nvarchar(512), 9 @Level nvarchar(512), 10 @Thread int, 11 @File nvarchar(512), 12 @Line int, 13 @Message nvarchar(MAX), 14 @TimeGenerated datetime, 15 @CreatedTime datetime, 16 @IntranetIP nvarchar(256) 17 AS 18 BEGIN 19 Declare @AppServerID int 20 Select @AppServerID=AppServerID FROM AppServerConnection WHERE AppID=@AppID 21 AND ServerID=(SELECT a.ServerID FROM PCServer AS a WHERE a.IntranetIP = @IntranetIP) 22 INSERT INTO ApplicationLog 23 (AppServerID,Class,Level,Thread,[File],Line,Message,TimeGenerated,CreatedTime) 24 VALUES 25 (@AppServerID,@Class,@Level,@Thread,@File,@Line,@Message,@TimeGenerated,@CreatedTime) 26 END 27 GO 谢谢谢谢。。。

达令说

@紫秋: 谢谢你第一个回答!
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答