【发布时间】:2019-08-16 16:18:46
【问题描述】:
我有一组来自我开发的控制台应用程序的数据,我需要将这些数据传输到 SQL 数据库中。由于 SQL 注入是不稳定的,我决定尝试通过表值参数通过存储过程传递它。我创建了没有问题的表类型,它列在“用户定义的表类型”文件夹下。我遇到的问题是,当我尝试创建存储过程时,收到此错误:
消息 2715,级别 16,状态 3,过程 sp_IsertBackupData,第 2 行 [Batch Start Line 0] 列、参数或变量 #1:找不到 数据类型 VeeamTableType。参数或变量“@VeeamTableType”具有 无效的数据类型。
有人对这里可能出现的问题有任何见解吗?
我已经尝试过刷新本地缓存。
CREATE PROCEDURE sp_IsertBackupData
@VeeamTableType VeeamTableType READONLY
AS
BEGIN
DECLARE @q varchar(1000)
SET @q= 'SELECT * FROM' + @VeeamTableType
INSERT INTO ASManagement.dbo.VeeamBackupResults
(
Id,
Server,
BackupLogFileName,
BackupLogFileSize,
CreatedOn
)
EXEC (@q)
END
SELECT * FROM ASManagement.VeeamBackupResults
CREATE TYPE VeeamBackupResults.VeeamTableType as TABLE
(
Id int primary key,
Server varchar(500) null,
BackupLogFileName varchar (500) null,
BackupLogFileSize float null,
CreatedOn datetime null
)
【问题讨论】:
标签: sql-server tsql table-valued-parameters