0

我必须将参数(日期)传递到将通过批处理文件触发的创建表脚本中。我用过SQLCMD,代码如下

for /f "tokens=1-4 delims=/:." %%a in ("%TIME%") do (
       set hh=%%a&set nn=%%b&set ss=%%c&set ms=%%d)
echo "timeset"   
set V_TIMESTAMP=%yyyy%%mm%%dd%
echo %V_TIMESTAMP%

sqlcmd -E -S %V_SERVER% -d %V_DATABASE% -b -i %V_SQL_SCRIPT%  -v timestmp=%V_TIMESTAMP%

SQL

CREATE TABLE [dbo].[tblname_'($timestmp)'](
[PKCol1] [int] NOT NULL)

从我看到的输出应该是一个名称的表,tblname_20131022但我看到的是一个使用名称创建的表tblname_'($timestmp)'

我所做的有什么问题吗?请建议。

谢谢你,维巴夫

4

1 回答 1

0

在您的 CREATE TABLE 语句中,美元符号 ($) 需要在括号之外......并去掉引号:

CREATE TABLE [dbo].[tblname_$(timestmp)](
[PKCol1] [int] NOT NULL)
于 2013-10-22T20:55:55.173 回答