我有一张学生表和部门表。 学生表包含三列如何在sql server中编写动态插入语句?
StudentId | DeptId | StudentName
部门表包含
DeptId | DeptName
这可能是DeptTable有时不列入存在的情况下。那就是我正在部署脚本,有时两个脚本部署,有时没有脚本。在没有主管部门的情况下,因此,当系表存在我要插入DEPTID的价值,否则我必须写INSERT语句没有DepartmentID的
IF (EXISTS(
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Department'
AND column_name = 'DeptId'
))
DECLARE @DeptId UNIQUEIDENTIFIER;
SET @DeptId = Select DeptId From Department Where DeptName = 'Computer'
INSERT INTO Student ([DeptId], [StudentName])
VALUES (@DeptId, 'TBAG')
但作为DEPTID列有时不存在DepartmentID的会不会有学生表 我需要创建动态Sql。
因此,我创建Select语句
DECLARE @sqlCommand nvarchar(1000)
DECLARE @DeptName varchar(75)
declare @DeptId uniqueIdentifier
SET @DeptName = 'Computer'
SET @sqlCommand = 'SELECT @dept=DeptId FROM customers WHERE DeptName = @DeptName'
EXECUTE sp_executesql @sqlCommand, N'@DeptName varchar(50),@dept uniqueIdentifier OUTPUT', @DeptName = @DeptName, @[email protected] OUTPUT
但如何写Insert语句,我没有得到
SELECT @DeptId = DeptId FROM dbo.Department有时部门表本身不会出现,所以这将变得无效。 – TBAG
@TBAG请在这种情况下提供您的错误消息 – Devart
无效的列名称'DeptId'。由于表格本身不存在。我提到的问题可能是DeptTable有时不存在的情况 – TBAG