我试图修改一个存储过程,我写了从其他表中取出数据并将其插入表中。SQL存储过程,从辅助表中选择数据
基本上我有一个表,我们通过ID存储映射。在该表中,我放置了一个应该存储该数据串联的字段,该字段可以正常工作。问题是存储映射的ID,而不是属于该ID的名称。
我的存储过程:
`USE [SNHULeads]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spSNHUCodeCreate]
(
@Source numeric(18,0),
@ProgramName numeric(18,0),
@Division numeric(18,0),
@Medium numeric(18,0),
@content varchar(50),
@URL varchar(500) = 'N/A',
@redirect varchar(100),
@Cost numeric(18,0),
@Notes varchar(500) = 'N/A',
@StartDate datetime,
@EndDate datetime,
@oper varchar(50),
@id varchar(50)
)
AS
DECLARE @SNHUCode numeric(18,0)
DECLARE @DateCreated datetime
SET @SNHUCode = (SELECT MAX(snhuCODE) + 1 FROM [dbo].[VendorProgram])
SET @DateCreated = GETDATE()`
IF @URL != 'N/A'
BEGIN
SET @URL = 'http://www.snhu.edu/' + @URL + '.asp?utm_source=' + CONVERT(varchar(50), @Source) + '&utm_medium=' + CONVERT(varchar(50), @Medium) + '&utm_content=' + CONVERT(varchar(50), @content) + '&utm_campaign=' + CONVERT(varchar(50), @ProgramName) + '&SNHU_Segment=' + CONVERT(varchar(50), @Division)
END
INSERT INTO [SNHULeads].[dbo].[VendorProgram]
([vendorID]
,[programID]
,[divisionID]
,[mediumID]
,[snhuCODE]
,[content]
,[url]
,[cost]
,[Notes]
,[StartDate]
,[EndDate]
,[redirect]
,[DateCreated])
VALUES
(@Source
,@ProgramName
,@Division
,@Medium
,@SNHUCode
,@content
,@URL
,@Cost
,@Notes
,@StartDate
,@EndDate
,@redirect
,@DateCreated)`
基本上,URL栏,我赶上我在发送的ID,这不是我想要的。我似乎无法找到一个方法来选择对应于@Source ID我送名
我想是这样,在proc声明一个新的变量,然后选择它是这样的:
DECLARE @sourceName varchar(50) SET @sName = (SELECT Leads.dbo.Vendors.Source WHERE mappingID = @Source)
这给我一个错误,“多部分标识符”Vendors.mappingID“无法绑定。”。
对我有帮助吗?不要抨击SQL太多,这显然不是我的强项。
该诀窍过去了,非常感谢。我有正确的概念,但查询都错了。 – CoreyT 2010-09-17 17:19:22