日期:2014-05-18  浏览次数:20633 次

Create table Table1%s是什么意思啊?
需要创建N个有相同字段的表table(1-N)
看到有这样的sql语句Create table tabvos%s不会用?
如下:
CREATE TABLE tabvos%s
(
  PRI_KEY1 NUMERIC(4) DEFAULT 0 /* 1:PRIMARY KEY
  , PRI_KEY2 NUMERIC(4) DEFAULT 0 /* 2:PRIMARY KEY
  , MCNO NUMERIC(5) DEFAULT 0 /* 3:設定号機
  , CONSTRAINT PK_VOSSET%s /* プライマリキー名称 */
PRIMARY KEY(
PRI_KEY1 /* 1:PRIMARY KEY */
  , PRI_KEY2 /* 2:PRIMARY KEY
  , MCNO /* 3:設定号機
)
);

sqlserver报%附近有语法错误,不知道应该怎么用这个%s
求教各位啊!

------解决方案--------------------
这是oracle的语法啊 哥哥!!
------解决方案--------------------
SQL code

DECLARE @i INT SET @i=1
DECLARE @sql VARCHAR(8000) SET @sql=''
WHILE @i<=10
BEGIN
    SET @sql='CREATE TABLE [tabvos'+LTRIM(@i)+']
        (
          PRI_KEY1 NUMERIC(4) DEFAULT 0 ,
          PRI_KEY2 NUMERIC(4) DEFAULT 0 ,
          MCNO NUMERIC(5) DEFAULT 0 ,
          CONSTRAINT PK_VOSSET_'+LTRIM(@i)+' PRIMARY KEY ( PRI_KEY1, PRI_KEY2, MCNO )
        ) ;'
    EXEC(@sql)
    SET @i=@i+1
end

------解决方案--------------------
这个不是合法的SQL语句,应该是程序里动态创建表的语句
%s代表的是序号,tabvos%s传值过来应该是tabvos1, tabvos2,……,tabvosN的意思
------解决方案--------------------
不能这样命名!!!