Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在带有参数的过程中插入语句_Sql_Sql Server - Fatal编程技术网

Sql 在带有参数的过程中插入语句

Sql 在带有参数的过程中插入语句,sql,sql-server,Sql,Sql Server,我有一个插入语句的过程: CREATE PROCEDURE add_job AS INSERT INTO jobs(job_id, job_title) VALUES('IT_DBA', 'Database Administrator'); GO; 我希望使用参数来代替硬编码值,因此每次调用此过程时,我都应该能够插入新值。参数如下所示: CREATE PROCEDURE add_job ( @job_id varchar(255), @job_title varchar(255

我有一个插入语句的过程:

CREATE PROCEDURE add_job
AS
INSERT INTO jobs(job_id, job_title) VALUES('IT_DBA', 'Database Administrator');
GO;

我希望使用参数来代替硬编码值,因此每次调用此过程时,我都应该能够插入新值。

参数如下所示:

CREATE PROCEDURE add_job (
    @job_id varchar(255),
    @job_title varchar(255)
) AS
BEGIN
    INSERT INTO jobs(job_id, job_title)
        VALUES(@job_id, @job_title);
END;

当然,您没有指定列的类型,所以我只是将
varchar(255)
作为一个合理的类型。

这不是PL/SQL代码,所以我删除了该标记。包含列的表已经存在。那么我必须为varchar(255)添加广告吗too@sqlhelper10 . . . 这些是存储过程的参数。理想情况下,它们应该与表中的列具有相同的类型。我得到此错误,然后出现错误(2,5):PLS-00103:在预期以下情况之一时找到了符号“@”:当前删除存在prior@sqlhelper10 . . . 如果您使用的是Oracle,那么您的问题中的代码将根本不起作用。这是标准的ANSI SQL,应该适用于任何它确实适用的DBMS:Oracle MS SQL Server MySQL Postgres SQLite v3 Teradata DB2 Sybase Vertica HSQLDB H2 AWS RedShift SAP HANA
CREATE PROCEDURE [dbo].[add_job]

@job_id VarChar (50),
@job_Title VarChar (50)
AS
BEGIN
SET NOCOUNT ON;

INSERT INTO [dbo].[jobs]
  ([job_id] 
 , job_title)
 VALUES
(@job_id, @job_title)
END;