0
我有两个独立的学生表部署。在一种情况下,学生表包含部门ID,在其他情况下,它不包含部门ID。根据条件动态生成插入语句
我有一个共同的帖子部署脚本,用于在学生表中插入值的两种情况。
CREATE TABLE dbo.Student
(
DeptId UNIQUEIDENTIFIER,
StudentName VARCHAR(20)
)
GO
DECLARE @DeptId UNIQUEIDENTIFIER
IF COL_LENGTH('dbo.Department', 'DeptId') IS NOT NULL BEGIN
SELECT @DeptId = DeptId
FROM dbo.Department
WHERE DeptName = 'Computer'
END
INSERT INTO dbo.Student(DeptId, StudentName)
SELECT @DeptId, 'TBAG'
但是当我没有部门ID列此脚本不起作用
消息207,级别16,状态1,行23 无效的列名称DEPTID“。
如果你想运行在同一个表查询相同,固定表,因此它们具有相同的列。 –
对于某些客户,我不想授予部门Id功能,而其他人可以拥有该功能。我怎样才能保持这两个案例相同的脚本。我的意思是我打开将查询更改为字符串并在EXEC下运行它。但我很难将其转换为字符串。 – TBAG
。 。您应该使用更高级别的参数来控制这些功能。数据结构应该是相同的,否则你将面临维护噩梦。所以,你的代码可以用'if'语句填充,检查是否启用了该功能。 –