[英]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.