Javascript 使用节点mssql如何创建数据库?
我尝试了Javascript 使用节点mssql如何创建数据库?,javascript,sql-server,node.js,node-mssql,Javascript,Sql Server,Node.js,Node Mssql,我尝试了execute方法: const sql = require('../node_modules/mssql'); var dbname = 'AddressBook'; sql.connect('mssql://sa:1234@localhost/').then(pool => { return pool.request().input('db_name', sql.TYPES.Text, dbname).query`select db_id(@db_name) as idn`
execute
方法:
const sql = require('../node_modules/mssql');
var dbname = 'AddressBook';
sql.connect('mssql://sa:1234@localhost/').then(pool => {
return pool.request().input('db_name', sql.TYPES.Text, dbname).query`select db_id(@db_name) as idn`.then(result => {
if (result[0].idn === null) {
return pool.request().input('db_name', sql.TYPES.Text, dbname).execute`create database @db_name`;
}
}).catch(err => {throw(err)});
}).catch(err => console.log(err));
return pool.request().input('db_name', sql.TYPES.Text, dbname).query`create database @db_name`;
我得到:
消息:“传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确。RPC名称无效。“
还尝试了查询
方法:
const sql = require('../node_modules/mssql');
var dbname = 'AddressBook';
sql.connect('mssql://sa:1234@localhost/').then(pool => {
return pool.request().input('db_name', sql.TYPES.Text, dbname).query`select db_id(@db_name) as idn`.then(result => {
if (result[0].idn === null) {
return pool.request().input('db_name', sql.TYPES.Text, dbname).execute`create database @db_name`;
}
}).catch(err => {throw(err)});
}).catch(err => console.log(err));
return pool.request().input('db_name', sql.TYPES.Text, dbname).query`create database @db_name`;
我明白了
消息:“靠近\'@db_name\'的语法不正确。”
是否有其他方法,或者我缺少了什么?此方法有效
返回pool.request().query(`create database${dbname}`)代码>-我认为您过度使用了标记模板:p@JaromandaX非常感谢,它成功了。但是我尝试的和你的有什么区别呢?首先,创建数据库“地址簿”
(这是你的代码可能尝试的)是无效的,它是创建数据库“地址簿”
(不带引号)-其次,标记的模板语法使得请求更加不正确-我不完全理解标记的模板,因此我无法解释它是的,从“正确”版本中删除了,
:p抱歉,复制/粘贴laziness@JaromandaX非常感谢。