使用今天的日期附加SQL表名

时间:2010-04-07 12:49:45

标签: sql-server tsql

据我所知,我可以使用后续sp:

更改sql表
EXEC sp_rename 'customers', 'custs'

我如何附加此内容以便新表格将今天的日期作为后缀?

我尝试对以下主题进行修改,但收效甚微!!

EXEC sp_rename 'customers', 'customers +(CONVERT(VARCHAR(8),GETDATE(),3))'

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:5)

这听起来像是一件非常糟糕的事情!你应该评估你的设计,用名字中的日期重命名表格表明你将产生许多表格,每个表格都有不同的日期。您可以在表中添加一个日期列,并使用它来区分数据,而不是为不同的日期创建全新的表。

话虽如此,您不能将表达式作为SQL Server中存储过程的参数。通过尝试将格式化日期连接到字符串'customers',您试图将表达式作为参数传递。

首先必须将表达式存储在局部变量中,然后使用该局部变量调用存储过程:

DECLARE @Value varchar(500)
SET @Value='customers' +(CONVERT(VARCHAR(8),GETDATE(),3))
EXEC sp_rename 'customers', @Value

答案 1 :(得分:2)

你的意思是T-SQL,对吗?将函数移到单引号之外。类似的东西:

EXEC sp_rename 'customers', 'customers' +(CONVERT(VARCHAR(8),GETDATE(),3))

答案 2 :(得分:1)

DECLARE @TableName varchar(50)

SELECT @TableName = (SELECT 'Customers_' + convert(varchar(50),GetDate(),112))

EXEC sp_rename 'customers', @TableName

答案 3 :(得分:0)

由于你几乎不应该经常这样做,你需要按程序计算日期,我建议偶尔使用这个:

EXEC sp_rename 'customers', 'customers20100408'