在sql中为多个数据库和用户创建创建了一个循环,但是我收到了错误

时间:2016-06-29 05:30:40

标签: sql-server

尝试使用 Windows身份验证域名/用户名创建用户。

正在创建数据库,但无法创建用户。

有人可以帮帮我。

这是错误:

  

"未知对象类型''用于CREATE,DROP或ALTER语句。"

这是我的代码:

gulp-ng-annotate

2 个答案:

答案 0 :(得分:0)

您在以下行中缺少空格,并且语法不正确:

SET @SQL = 'CREATE LOGIN' +@name+ 'WITH PASSWORD' +@name+ ';'

1.添加缺失的空格 - 更改您的查询,如下所示:

SET @SQL = 'CREATE LOGIN ' +@name + ' WITH PASSWORD ' +@name+ ';'

2.在SQL Server中设置登录的正确方法如下:(带有'='符号)

SET @SQL = 'CREATE LOGIN ' +@name + ' WITH PASSWORD =''' +@name+ ''';'

假设您的@name变量为'test',您的查询将如下所示:

SET @SQL ='CREATE LOGIN' +test+ 'WITH PASSWORD ' +test ';'

结果:

@SQL=CREATE LOGINtestWITH PASSWORDtest ';

因此,您在CREATE,DROP或ALTER语句中使用了“未知对象类型”。错误,因为sql无法识别此查询中的任何内容。

答案 1 :(得分:0)

  

对于Windows,您的动态语句应该是,因为它包含一个   特殊字符\:

 SET @SQL = 'CREATE LOGIN [' + @NIUNT+ + @NAME + '] from windows;'
  

对于SQL Server身份验证:

   SET @SQL = 'CREATE LOGIN ' +@name+ ' WITH PASSWORD=' +@name+ ';'