将 SQL 表名附加到今天的日期
我知道我可以使用以下 sp 更改 sql 表:
I understand that I can change a sql table using the follow sp:
EXEC sp_rename 'customers', 'custs'
我将如何附加它以便新表以今天的日期作为后缀?
How would I go about appending this so that the new table has today's date as a suffix?
我尝试了以下主题的变体,但收效甚微!
I've attempt variations on the below theme with little success!!
EXEC sp_rename 'customers', 'customers +(CONVERT(VARCHAR(8),GETDATE(),3))'
非常感谢任何帮助.
推荐答案
这听起来很糟糕!你应该评估你的设计,用名称中的日期重命名你的表格表明您将生成许多表,每个表用于不同的日期.您可以在表格中添加一个日期列并使用它来区分数据,而不是为不同的日期创建全新的表格.
This sounds like a very bad thing to do! you should evaluate your design, renaming your tables with dates in the names suggests that you will be spawning many tables, each for a different date. You could possibly add a date column into your table and use that to differentiate the data instead of creating completely new tables for different dates.
话虽如此,您不能将表达式作为 SQL Server 中存储过程的参数.通过尝试将格式化日期连接到字符串customers",您试图将表达式作为参数传递.
With that said, you can not have an expression as a parameter to a stored procedure in SQL Server. By attempting to concatenate the formatted date to the string 'customers', you were trying to pass an expression as a parameter.
您必须先将表达式存储在局部变量中,然后使用该局部变量调用存储过程:
you must store the expression in a local variable first, and then call the stored procedure with that local variable:
DECLARE @Value varchar(500)
SET @Value='customers' +(CONVERT(VARCHAR(8),GETDATE(),3))
EXEC sp_rename 'customers', @Value
相关文章