创建分支表:
CREATE TABLE Branch
(
bId int PRIMARY KEY,
bName varchar(20),
bCity varchar(20),
ifscCode varchar(15)
)
这样就可以创建一个具有动态表名的表。表名是的最后一个插入值 ifsccode
在分支表中插入的列。所以每次数据插入 Branch
table,另一张table ifscCode
应创建名称:
CREATE PROCEDURE spName
AS
DECLARE @tableName VARCHAR(200), @Query VARCHAR(7000)
SET @tableName = 'SELECT TOP 1 ifscCode FROM Branch ORDER BY bId DESC'
BEGIN
SET @Query = 'create table ' + @tableName + ' ( bId int, tokenDate date,
slot int, uToken int,username varchar(30),
FOREIGN KEY (username) REFERENCES UserDetails(username),
FOREIGN KEY (bId) REFERENCES Branch(bId)
)'
EXECUTE (@Query)
END
插入数据:
INSERT INTO Branch
VALUES (1, 'Bandra', 'Mumbai', 'BOI650011')
错误:
消息156,15级,状态1,行1
关键字“select”附近的语法不正确。
消息102,级别15,状态1,行1
“bid”附近的语法不正确
1条答案
按热度按时间lf3rwulv1#
将表名存储在列中通常是个坏主意。我对这件事的总体看法是,如果你这么做了,你应该对sql有很强的理解,这样的问题就永远不会发生。
在任何情况下,如果您打印出sql,您都会立即看到您的问题。它看起来像这样:
问题在于:
您正在设置
@tableName
一根绳子。您需要实际值: