sql - 无法执行 SQL Server 存储过程
问题描述
尝试执行存储过程时出现以下错误:
Msg 2714,Level 16,State 6,Procedure Hire_Termination,Line 18 [Batch Start Line 2]
数据库中已经有一个名为“Employees”的对象
我在另一个实例中创建了表,我必须使用 JSON 文件并将其导入 SQL Server:
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);
推荐阅读
- c# - 如何添加到十六进制数?
- vb.net - 出现错误无法在 VB .NET 2017 中创建活动 X 组件
- java - Java - 在代码中处理一组常量字符串
- ruby-on-rails - 使用 SQL 服务器导入 ActiveRecord
- c# - .Net Core 中 AuthenticationManager 的替代方法是什么
- c - 使用 C 编程查找字符串中子字符串的出现次数
- asp.net - target="_blank" 不打开新标签
- javascript - CSS - 水平滚动上的粘性 div?
- android - 分页库,重置 PageKeyedDataSource
- jenkins - 有没有办法使用 jenkinsfile 链接两个不同的管道?