Sql 创建存储过程以将新数据插入表中
我想创建一个存储过程,以便在表“dbo.Terms”中插入新行Sql 创建存储过程以将新数据插入表中,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我想创建一个存储过程,以便在表“dbo.Terms”中插入新行 CREATE PROCEDURE dbo.terms @Term_en NVARCHAR(50) = NULL , @Createdate DATETIME = NULL , @Writer NVARCHAR(50) = NULL ,
CREATE PROCEDURE dbo.terms
@Term_en NVARCHAR(50) = NULL ,
@Createdate DATETIME = NULL ,
@Writer NVARCHAR(50) = NULL ,
@Term_Subdomain NVARCHAR(50) = NULL
AS
BEGIN
SET NOCOUNT ON
INSERT INTO dbo.terms
(
Term_en ,
Createdate ,
Writer ,
Term_Subdomain
)
VALUES
(
@Term_en = 'Cat' ,
@Createdate = '2013-12-12' ,
@Writer = 'Fadi' ,
@Term_Subdomain = 'English'
)
END
GO
但是is在这里向我显示了一个错误(@Term_en='Cat')错误的语法
有什么帮助吗?我猜您想在表中插入值cat etc;为此,需要使用过程变量中的值。我不会把你的过程和你的表叫同一个名字,它会让人感到困惑;您可以找到一些很好的命名标准资源(或crib-from) 并对其进行测试
exec dbo.terms
@Term_en = 'Cat' ,
@Createdate = '2013-12-12' ,
@Writer = 'Fadi' ,
@Term_Subdomain = 'English'
以下是如何设置进程中参数的默认值:
CREATE PROCEDURE dbo.terms
@Term_en NVARCHAR(50) = 'Cat',
@Createdate DATETIME = '2013-12-12',
@Writer NVARCHAR(50) = 'Fadi',
@Term_Subdomain NVARCHAR(50) = 'English'
AS
BEGIN
SET NOCOUNT ON
INSERT INTO dbo.terms
(
Term_en ,
Createdate ,
Writer ,
Term_Subdomain
)
VALUES
(
@Term_en,
@Createdate,
@Writer,
@Term_Subdomain
)
END
GO
您的代码不正确。
在插入零件中输入值。您应该在执行部分输入值
CREATE PROCEDURE dbo.terms
@Term_en NVARCHAR(50) = NULL ,
@Createdate DATETIME = NULL ,
@Writer NVARCHAR(50) = NULL ,
@Term_Subdomain NVARCHAR(50) = NULL
AS
BEGIN
SET NOCOUNT ON
INSERT INTO dbo.terms
(
Term_en,
Createdate,
Writer,
Term_Subdomain
)
VALUES
(
@Term_en ,
@Createdate ,
@Writer ,
@Term_Subdomain
)
END
按此执行
exec dbo.terms
@Term_en = 'Cat' ,
@Createdate = '2013-12-12' ,
@Writer = 'Fadi' ,
@Term_Subdomain = 'English'
GO
你到底想在那里做什么?@MartinSmith我认为这取决于你如何从应用程序中调用你的过程,如果你总是能够在调用过程时传递所有参数,那么你就不需要默认值。如果您的代码调用过程,并且有时没有为所有变量传递值,那么您确实需要null参数,否则过程会希望您将null传递到变量中。非常感谢。有谁能告诉我,当任何新行插入到表“dbo.terms”中时,如何创建触发器以在另一个表中添加行?
exec dbo.terms
@Term_en = 'Cat' ,
@Createdate = '2013-12-12' ,
@Writer = 'Fadi' ,
@Term_Subdomain = 'English'
GO
-- =============================================
-- Author: xxxx
-- Create date: xx-xx-xxxx
-- Description: Procedure for Inserting Data in table
-- =============================================
CREATE PROCEDURE [dbo].[SP_Emp_Insert]
(
@Empname nvarchar(250)=null,
@Status int=null,
@LoginUserId nvarchar(50)=null,
@Msg nvarchar(MAX)=null OUTPUT
)
AS
BEGIN TRY
INSERT INTO tbl_Employee
VALUES
(
@Empname ,
@Status,
GETDATE(),
GETDATE(),
@LoginUserId
)
SET @Msg='Table Detail Saved Successfully.'
END TRY
BEGIN CATCH
SET @Msg=ERROR_MESSAGE()
END CATCH
GO