【问题标题】:Create a stored procedure that would Retrieve, Update, and Delete Records on each Table [closed]创建一个存储过程,该过程将检索、更新和删除每个表上的记录 [关闭]
【发布时间】:2015-07-16 11:47:49
【问题描述】:
CREATE TABLE Person
(
ID INT Primary Key Identity (1,1),
LastName nVarchar (20) not NULL, 
FirstName nVarchar (20) not NULL, 
MiddleName nVarchar (20), 
BirthDate DateTime not NULL, 
Age INT not NULL, 
Check (Age>18) 
);


CREATE TABLE Department
(
ID INT Primary Key Identity (1,1), 
DepartmentName nVarchar (50) Unique, 
DepartmentCode nVarchar (20) Unique, 
IsActive Bit Default (1)
); 


CREATE TABLE Employee
(
ID INT Primary Key Identity (1,1), 
PersonId INT Foreign Key REFERENCES Person, 
DepartmentId INT Foreign Key REFERENCES Department, 
Salary Decimal (18,2), 
Check (Salary>10000), 
IsActive Bit Default (1) 
); 

我试过用这个,但我不太确定这是否正确。

    CREATE PROCEDURE sp_retrieve 
    AS 
    BEGIN 
    SELECT * FROM Person 
    END 
    GO 

如何正确创建用于检索、更新和删除的存储过程?

【问题讨论】:

标签: sql-server stored-procedures sql-server-2014 sql-server-2014-express


【解决方案1】:
CREATE PROCEDURE usp_Test123
AS
SELECT 'This is a test'

CREATE PROCEDURE usp_Update @Col1Val NVARCHAR(MAX)
AS
UPDATE ReplaceTableNameHere
SET Column1 = @Col1Val

CREATE PROCEDURE usp_Insert @Col1Val NVARCHAR(MAX)
AS
INSERT INTO ReplaceTableNameHere (Col1)
VALUES (Column1 = @Col1Val)

CREATE PROCEDURE usp_delete @PKID NVARCHAR(MAX)
AS
DELETE ReplaceTableNameHere
WHERE ColumnPKID = @PKID

编辑:您将在执行存储过程时传入该值以允许选择、更新和删除。

更新示例:

EXEC usp_Update @Col1Val = 50;

这会将您在存储过程中定义的表更新为 50。

【讨论】:

  • 我假设您要一个模板,所以我为您所说的语句制作了一个模板。正如marc_s所提到的一般不要使用sp前缀,大多数人使用usp(用户)。
  • 谢谢你,但我不明白。我把它改成了这些。正确与否?创建过程 usp_update Col1Val NVARCHAR(MAX) 作为更新 ReplacePerson SET PersonId = Col1Val 创建过程 usp_Insert @Col1Val NVARCHAR(MAX) 作为插入 ReplaceDepartment (Col1) 值 (Column1 = @Col1Val) 创建过程 usp_delete PKID NVARCHAR(MAX) 作为删除 ReplaceEmployee WHERE列PKID = PKID
  • 已编辑答案。希望它更清楚。
  • 那么,就这样吗?你上面列出的那个?我不应该做任何改变吗?例如,删除 ReplaceTableNameHere。我应该改变它还是让它成为它?
  • 您需要将占位符替换为您的实际表名。抱歉,我没有时间这样做,但如果今晚仍未解决,我可以给你代码。
猜你喜欢
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 2023-03-16
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 2019-02-06
相关资源
最近更新 更多