2013-10-22 34 views
0

我必須將參數(日期)傳遞到將通過批處理文件觸發的創建表腳本中。我已經使用SQLCMD和代碼如下使用批處理文件和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

可能是我錯了,但%yyyy%%mm%和%dd%已定義/初始化的位置? –

+0

在for循環中。我從日期變量中提取這些值。 設置hh = %% a&設置nn = %% b&設置ss = %% c&設置ms = %% d –

+2

否。您從%TIME%變量中設置%hh%,%nn%,%ss%和%ms%。 –

回答

0

在你的CREATE TABLE語句,美元符號($)需要括號外...並擺脫報價:

CREATE TABLE [dbo].[tblname_$(timestmp)](
[PKCol1] [int] NOT NULL) 
相關問題