【问题标题】:Insert data using Store Procedures使用存储过程插入数据
【发布时间】:2012-02-07 08:52:27
【问题描述】:

假设我登录后会提示输入名称和地址如何使用 Store 过程插入至少有 2 个相互链接的表的数据?

【问题讨论】:

    标签: vb.net sql-server-2008 stored-procedures insert


    【解决方案1】:

    试试这样的:

    CREATE PROC dbo.user_Add(
     @username VARCHAR(50),
     @password NVARCHAR(50)
    ) 
    AS 
    BEGIN
       -- username should be unique
       IF NOT EXISTS(SELECT TOP 1 1 FROM Login WHERE username = @username) BEGIN
          INSERT INTO Login (username, password)
          VALUES (@username, @password)
    
          RETURN @@IDENTITY
       END
       ELSE BEGIN
       -- already taken username should be handled somehow
          RETURN 0
       END
    END
    
    CREATE PROC dbo.user_StudentAdd(
      @loginID INT,
      @name NVARCHAR(50),
      @addr NVARCHAR(100)
    )
    AS
    BEGIN
      -- add new record for new student 
      -- probably before you should check if student is not already exist
      INSERT INTO Student (LoginID, [Student Name], [Student address])
      VALUES (@loginID, @name, @addr)
    
      -- returns new StudentID, you can also use `RETURN` to return StudentId (if you need it)
      SELECT @@IDENTITY
    END
    

    作为你的作业,你可以编写第三个存储过程,它调用上面的两个 并在第二个中使用第一个的结果。提示 -- 使用 EXEC 分配返回的值 存储过程(这里有详细信息:http://msdn.microsoft.com/en-us/library/ms174998.aspx)。

    我没有测试它,所以它可能由于拼写错误而失败。 另外我从来没有使用过里面有空格的列,所以我不知道如何处理它们。

    假设

    1. 用户(login 表中的记录)已存在,login.loginID 的值可访问(用户已登录)。
    2. 已检查登录用户是否需要填写学生数据。

    还有一个更多——我不会使用带有空格(或非拉丁字符)的列名。

    【讨论】:

    • 我在尝试添加新学生后收到错误"Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.",这是我的代码:StudentTableAdapter.user_StudentAdd(LibraryDataSet.Student, LoginIDTextBox.Text, Student_NameTextBox.Text, Student_addressTextBox.Text) 我不确定这里出了什么问题。
    • 不知道出了什么问题,但我会从检查表定义的外键开始(如果 FK 定义正确)。
    猜你喜欢
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多