![](/img/trans.png)
[英]Passing sets and optional parameters to a stored procedure T-SQL - ASP.NET
[英]Handling foreign keys in T-SQL select stored procedure?
我正在編寫存儲過程以根據給定的ID獲取數據,這很好,但是有些列是外鍵,我需要的是它們的值。 如何在存儲過程中完成所有這些操作?
作為參考,我將使用ASP.NET(尚未了解)來調用這些存儲過程並更新網站。
例如,在AdventureWorks數據庫中:
CREATE PROCEDURE spLoadProduct
AS
BEGIN
SET NOCOUNT ON;
SELECT
[ProductID], [Name],
[ProductCategoryID], [ProductModelID]
FROM
[SalesLT].[Product]
END
我想要的是最后兩列返回實際的類別和模型名稱,而不是外鍵。 我正在嘗試在一個存儲過程中完成所有操作的標准做法嗎?
也許我會誤解您的問題,但是您可以在存儲過程中加入聯接。
如果您有afkey鏈接到表2的示例
Table_1: Table_2: id name afkey akey otherinfo 1 fred 1 1 info 2 jon 2 2 other 3 abbie 3 3 more info
如果要顯示otherinfo列而不是afkey外鍵
你可以有:
create PROCEDURE spLoad
AS
BEGIN
SET NOCOUNT ON;
SELECT NAME, OTHERINFO
FROM TABLE_1
INNER JOIN TABLE_2
ON TABLE_1.afkey = TABLE_2.akey
END
您可以使用INNER JOIN將父表聯接到子表。 在這種情況下,子表是ProductCategory和ProductModel。
CREATE PROCEDURE spLoadProduct
AS
BEGIN
SELECT
p.ProductID
, p.Name
, p.ProductCategoryID
, p.ProductModelID
, ProductCategoryName = pc.Name
, ProductModelName = pm.Name
FROM
SalesLT.Product p
INNER JOIN SalesLT.ProductCategory pc ON p.ProductCategoryID = pc.ProductCategoryID
INNER JOIN SalesLT.ProductModel pm ON p.ProductModelID = pm.ProductModelID;
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.