我必须将参数(日期)传递到将通过批处理文件触发的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
答案 0 :(得分:0)
在您的CREATE TABLE语句中,美元符号($)需要在括号外...并删除引号:
CREATE TABLE [dbo].[tblname_$(timestmp)](
[PKCol1] [int] NOT NULL)