我正在尝试编写一个存储过程来备份表,但是我不断得到:
消息402,级别16,状态1,行9数据类型varchar和datetime2在add运算符中不兼容。
消息402,级别16,状态1,行15数据类型varchar和datetime2在add运算符中不兼容。
我怎样才能解决这个问题?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DECLARE @CreateDynamicSQL nvarchar(1000);
DECLARE @CopyDynamicSQL nvarchar(1000);
SET @CreateDynamicSQL='CREATE TABLE [dbo].[paul_AccountContact_Backup_'+@SYSDATETIME+'](
[AccountID] [int] NOT NULL,
[ContactID] [int] NOT NULL
) ON [PRIMARY]
GO'
SET @CopyDynamicSQL='select * into [dbo].[paul_AccountContact_Backup_'+@SYSDATETIME+'] from paul_AccountContacts'
EXEC(@CreateDynamicSQL);
EXEC(@CopyDynamicSQL);
您必须将date变量转换为字符串,以便可以将其连接:
SET @CreateDynamicSQL='CREATE TABLE [dbo].[paul_AccountContact_Backup_'
+ convert(varchar(20), @SYSDATETIME, <Format>) + '](
格式参数的文档:https :
//docs.microsoft.com/zh-cn/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句