使用批处理文件和SQLCMD在create table中传递参数

时间:2013-10-22 14:51:18

标签: sql sql-server batch-file parameter-passing sqlcmd

我必须将参数(日期)传递到将通过批处理文件触发的create table脚本。我使用了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)'

的表

我做了什么有什么不对吗?请建议。

谢谢你, Vibhav

1 个答案:

答案 0 :(得分:0)

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

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