我必须在sql中插入大量数据,操作无法通过SQL Management Studio工作,因此我正在通过sqlcmd
调查插入。所以我做的是以下几点:
创建一个包含以下查询的file.sql(多次):
IF NOT EXISTS (SELECT * FROM [dbo].[tblAccount]
WHERE [AccountID] = 117242 AND
[TimeStamp] = CAST(N'2013-01-16 05:53:50.490' AS DateTime))
BEGIN
INSERT INTO
[dbo].[tblAccount] ([AccountID]
,[Name]
,[Comment]
,[IsMachine]
,[UserID]
,[Prefix]
,[Action]
,[Initials]
,[Name]
,[TimeStamp]
,[Reason]
,[Iscal])
VALUES (117242
,'blabla'
,'The users project)'
,1
,'val'
,39
,'val'
,'blabla'
,'blabla'
,CAST(N'2013-01-16 05:53:50.490' AS DateTime)
,'NORMAL'
,'0')
END
我将文件保存到文件夹中,然后从命令行执行以下操作:
C:\>sqlcmd -S pc_name\MSSQLEXPRESS -i"C:\Users\name\Desktop\OutPut\Result tblAccount.sql"
我收到以下错误:
消息208,级别16,状态1,服务器pc_name \ MSSQLEXPRESS,第1行
无效的对象名称'dbo.tblAccount'。
我不确定它是否与sql的语法或我编写sqlcmd的方式有关。
答案 0 :(得分:0)
我知道这是一年多以前的问题,但是如果有人遇到相同的问题,请确保提供凭据。我只是遇到了同样的问题,并且没有提供凭据,sqlcmd发出了该错误。我不知道幕后发生了什么,但似乎它在身份验证失败并且无法找到表时连接到某种默认数据库。
sqlcmd -S <computer name> -U <username> -P <password> -i <absolute path to your script>