Sql 使用新数据更新存储过程中的表
我有一个存储过程,我将3个参数传递给它,并将整个过程导出到这个表中,我们称之为Sql 使用新数据更新存储过程中的表,sql,sql-server,tsql,stored-procedures,sql-server-2012,Sql,Sql Server,Tsql,Stored Procedures,Sql Server 2012,我有一个存储过程,我将3个参数传递给它,并将整个过程导出到这个表中,我们称之为dbo.myFinalTable。我想实现两件事: 任务#1: 我需要在使用传递的任何参数再次执行过程时追加数据 我尝试在最后一次表创建结束时添加这个,但总行数保持不变。有什么办法 IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'myDatabase'
dbo.myFinalTable
。我想实现两件事:
任务#1:
我需要在使用传递的任何参数再次执行过程时追加数据
我尝试在最后一次表创建结束时添加这个,但总行数保持不变。有什么办法
IF (EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'myDatabase'
AND TABLE_NAME = 'dbo.myFinalTable'))
BEGIN
INSERT INTO dbo.myFinalTable
SELECT
someValues
FROM #tempInWhichIcalulate
ORDER BY someOtherStuff
END
任务2:
我是这样执行的:
execute [myStoredProcedure] 'someString', '123', '2013-03-14'
我希望上面的查询仅在列id
和theDate
(来自dbo.MyFinalTable
;这些列的数据是从存储过程传递的,在本例中,值'123'
,'2013-03-14'
)没有这些值的情况下追加数据
注意:我的过程声明如下所示:
alter procedure [myStoredProcedure]
(@theString varchar (30),
@id varchar (10),
@theDate date)
如果我理解你的目标,这可能是一个疑问:
insert into dbo.myFinalTable
select
@theString as MyString,
@id as MyId,
@theDate as MyDate
where not exists(select * from dbo.myFinalTable
where MyId = @id
and MyDate = @theDate)
您好,您能发布dbo.FinalTable的结果吗@CM2K重要的列是日期和id,其余的只是一些计算值。无法发布我的真实表,这是您的存储过程
alter-procedure[myStoredProcedure](@theString-varchar(30),@id-varchar(10),@theDate-date)
@cm2k但您的存储过程中没有查询?只有变量。没有使用变量的Select语句
@CM2K