我有一個在表中添加新數據的過程。SQL Server存儲過程日期
表的名稱在參數中。
該錯誤是
的數據類型的varchar(max)和日期是在添加操作不相容。
日期字段必須是類型date
。
程序
USE [ProposalBuilderDev]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[addLog]
-- Add the parameters for the stored procedure here
@table varchar(max),
@date date,
@version varchar(max),
@process varchar(max),
@level varchar(max),
@message varchar(max),
@stacktrace varchar(max),
@user varchar(max),
@environmentID varchar(max),
@UUID varchar(max),
@UDID varchar(max),
@transactionID int,
@new_identity int OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @sql NVARCHAR(MAX);
SET @sql = 'INSERT INTO dbo.' + @table + '([Timestamp], [Version],Process,[Level],[Message],StackTrace,[User],EnvironmentID,UUID,UDID,TransactionID) VALUES (' + @date + ',' + @version + ',' + @process + ','+ @level + ','+ @message + ','+ @stacktrace + ','+ @user + ','+ @environmentID + ','+ @UUID + ','+ @UDID + ',' + @transactionID + ')'
EXEC @sql
SET @new_identity = SCOPE_IDENTITY();
END
我發現這是因爲表的名稱在參數中。如果你有另一種方法來做到這一點,我可以改變 – Weedoze
所有的表都有相同的列規範和數據類型? – ughai
是的,它們都是一樣的 – Weedoze