You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中用单.sql脚本创建多表的语法问题及脚本验证

SQL Server部署脚本问题分析及修正

你的原脚本存在几处语法和逻辑错误,导致执行时出现DATABASE、SCHEMA相关报错,具体问题和修正方案如下:

原脚本的错误点

  • USE语句语法错误:use database Test_Dev不符合SQL Server语法,切换数据库无需database关键字。
  • 表未归属目标Schema:创建表时未指定test_schema,默认会放到dbo Schema下,后续对test_schema的授权无法作用于这些表。
  • 重复创建表:连续两次执行create table test2,会触发“对象名已存在”的错误。
  • 用户引号使用不当:授权语句里的双引号"test_user"在SQL Server默认配置下会被识别为标识符而非用户名,导致授权失败。

修正后的可用脚本

-- 切换到目标数据库
USE Test_Dev
GO

-- 创建自定义Schema
CREATE SCHEMA test_schema
GO

-- 在test_schema下创建数据表
CREATE TABLE test_schema.test1(tname1 varchar(50), place1 varchar(100))
GO

CREATE TABLE test_schema.test2(tname2 varchar(50), place2 varchar(100))
GO

-- 为用户授予Schema权限
GRANT SELECT, INSERT, DELETE ON SCHEMA::test_schema TO 'test_user'
GO

修正说明

  1. 简化USE语句为USE Test_Dev,符合SQL Server语法规范。
  2. 所有表创建时添加test_schema.前缀,确保表归属到目标Schema,让后续的权限设置生效。
  3. 删除重复的test2表创建语句,避免对象冲突。
  4. 将授权语句中的双引号改为单引号,适配SQL Server默认的标识符引用规则;如果用户名无特殊字符,也可以直接写test_user无需引号。

内容的提问来源于stack exchange,提问作者Vijesh1985

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:03:11