[英]SQLSTATE[42000]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Incorrect syntax near '`'
[英]ODBC Driver 17 for SQL Server incorrect syntax near . ''
我正在嘗試使用 php 在 MS SQL 服務器管理 17 中創建表。
我的查詢是:
$mid=$row['MASTER_ID'];
echo $mid;
$table_solution="CREATE TABLE Q_MASTERID_'$mid'_Solution(
MASTER_ID INT ,
PRODUCT_NAME varchar(255),
CUSTOMER_NAME varchar(255),
Q_TEMP_ID INT IDENTITY(1,1),
Q_DESC nvarchar(600) NULL,
Q_CATEGORY nvarchar(255) NULL,
Q_SUB_CATEGORY nvarchar(255) NULL,
SCOPE nvarchar(255) NULL
) ON PRIMARY";
$solution_alter="ALTER TABLE Q_MASTERID_'$mid'_Solution ADD Q_ID AS CONCAT ('A',CAST(Q_TEMP_ID AS VARCHAR(100)))PERSISTED" ;
$res=sqlsrv_query($con,$table_solution) or die("Couldn't execute create query".print_r(sqlsrv_errors(), true));
$res1=sqlsrv_query($con,$solution_alter) or die("Couldn't execute alter query");
我收到以下錯誤:
無法執行 create queryArray ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 17對於 SQL 服務器][SQL Server]'' 附近的語法不正確。[消息] => [Microsoft][用於 SQL 服務器的 ODBC 驅動程序 17][SQL Server]'' 附近的語法不正確。))
如果我在創建查詢中刪除 $mid,我會收到以下錯誤
無法執行 create queryArray ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 156 [code] => 156 [2] => [Microsoft][ODBC Driver 17對於 SQL 服務器][SQL Server]關鍵字'PRIMARY'附近的語法不正確。[消息] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]關鍵字'PRIMARY'附近的語法不正確。))
我想在創建表“CREATE TABLE Q_MASTERID_'$mid'_Solution”時添加名為 $mid 的動態變量幫助我解決這個問題......
我認為您正在嘗試:
CREATE TABLE Q_MASTERID_Solution (
MASTER_ID INT ,
PRODUCT_NAME varchar(255),
CUSTOMER_NAME varchar(255),
Q_TEMP_ID INT IDENTITY(1,1),
Q_DESC nvarchar(600) NULL,
Q_CATEGORY nvarchar(255) NULL,
Q_SUB_CATEGORY nvarchar(255) NULL,
COPE nvarchar(255) NULL ,
Q_ID AS ( CONCAT('A', CAST(Q_TEMP_ID AS VARCHAR(100))) ) PERSISTED
) ON "default"
我認為沒有理由包含ON "default"
,因為如果沒有指定,那是默認的分區方案。 如果您確實指定了一個,那么您需要指定一個現有的。
您可以在名稱中包含q_id
的定義。
創建具有相同架構的多個表是一種非常糟糕的做法。 相反,將MASTER_ID
作為列包含在表中並針對每個主 ID 進行過濾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.