据我所知,我可以使用后续sp:
更改sql表EXEC sp_rename 'customers', 'custs'
我如何附加此内容以便新表格将今天的日期作为后缀?
我尝试对以下主题进行修改,但收效甚微!!
EXEC sp_rename 'customers', 'customers +(CONVERT(VARCHAR(8),GETDATE(),3))'
非常感谢任何帮助。
答案 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'