[英]Unable to execute SQL Server stored procedure
尝试执行存储过程时出现以下错误:
消息 2714,级别 16,State 6,过程 Hire_Termination,第 18 行 [批处理开始第 2 行]
数据库中已经有一个名为“Employees”的 object
我在另一个实例中创建了表,我必须使用 JSON 文件并将其导入 SQL 服务器:
USE [Kronos]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Hire_Termination]
AS
DECLARE @JSON nvarchar(max)
SET @JSON = N'{C:\Automation\Kronos.JSON}'
BEGIN
SELECT @JSON = BulkColumn
FROM OPENROWSET (BULK 'C:\Automation\Kronos.JSON', Single_Clob) import
SET NOCOUNT ON;
SELECT *
INTO [Kronos].[dbo].[Employees]
FROM OPENJSON (@JSON)
END
SELECT INTO
创建一个新表。 所以而不是使用
SELECT *
INTO [Kronos].[dbo].[Employees]
FROM OPENJSON (@JSON);
使用常规的INSERT
语句,例如
INSERT INTO [Kronos].[dbo].[Employees]
SELECT *
FROM OPENJSON (@JSON);
注意:最好的做法是完整列出您插入的列并选择例如
INSERT INTO [Kronos].[dbo].[Employees] (Col1, Col2, Col3, ...)
SELECT Col1, Col2, Col3, ...
FROM OPENJSON (@JSON);
SELECT INTO 创建一个新表。 因此,第二次运行 SP 时,它会报错如果您想插入现有表然后使用 INSERT INTO Kronos.dbo.Employees SELECT ... 如果您真的只想替换表的内容,那么您可以运行DROP TABLE IF EXISTS 首先是 Kronos.dbo.Employees,然后是 SELECT INTO 语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.