错误:
我在SELECT * FROM @SportsTable
报告错误时必须声明标量变量。我不明白,如果它被声明为存储过程的参数,我应该不能使用它?如果我删除该If NOT EXISTS
行,程序将正确编译。
USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_Sports_Insert]
(
@SportsTable dbo.TVP_SportsTable READONLY
)
AS
if NOT EXISTS (SELECT SportsTable.SportGUID FROM SportsTable WHERE SportsGUID = @SportsTable.SportsGUID)
BEGIN
INSERT INTO [dbo].[SportsTable]
SELECT * FROM @SportsTable
END
目的:
将表从Visual Studio 2008传递到参数TVP_SportsTable。然后在[dbo] .SportsTable中插入与现有行不匹配的所有行。如果TVP_SportsTable中的输入行与[dbo] .SportsTable中的现有行匹配,则应忽略该行,其余的应插入。
*注意:TVP_SportsTable引用了用户定义的类型,它是在服务器上定义的,其结构与dbo.TVP_SportsTable *
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句