Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于在SQL Server 2008中向多对多关系插入默认值的脚本_Sql_Sql Server_Sql Server 2008_Join_Sql Insert - Fatal编程技术网

用于在SQL Server 2008中向多对多关系插入默认值的脚本

用于在SQL Server 2008中向多对多关系插入默认值的脚本,sql,sql-server,sql-server-2008,join,sql-insert,Sql,Sql Server,Sql Server 2008,Join,Sql Insert,我正在使用SQLServer2008。考虑下面的表格: 表学生 ╔════╦═══════════╦══════════╗ ║ ID ║ FIRSTNAME ║ LASTNAME ║ ╠════╬═══════════╬══════════╣ ║ 1 ║ joe ║ Smith ║ ║ 2 ║ frank ║ Smith ║ ║ 3 ║ Scott ║ Smith ║ ╚════╩═══════════╩══════════╝ 表课程 ╔══

我正在使用
SQLServer2008
。考虑下面的表格:

学生

╔════╦═══════════╦══════════╗
║ ID ║ FIRSTNAME ║ LASTNAME ║
╠════╬═══════════╬══════════╣
║  1 ║ joe       ║ Smith    ║
║  2 ║ frank     ║ Smith    ║
║  3 ║ Scott     ║ Smith    ║
╚════╩═══════════╩══════════╝
课程

╔════╦═════════╦════════════════╗
║ ID ║  NAME   ║  DESCRIPTION   ║
╠════╬═════════╬════════════════╣
║  1 ║ Physics ║ PHYSICS COURSE ║
║  2 ║ MATH    ║ COURSE         ║
╚════╩═════════╩════════════════╝
╔════════════╦═══════════╦═══════╗
║ STUDENT_ID ║ COURSE_ID ║ GRADE ║
╠════════════╬═══════════╬═══════╣
║          1 ║         1 ║     9 ║
║          2 ║         1 ║     8 ║
║          3 ║         1 ║     6 ║
╚════════════╩═══════════╩═══════╝
学生课程

╔════╦═════════╦════════════════╗
║ ID ║  NAME   ║  DESCRIPTION   ║
╠════╬═════════╬════════════════╣
║  1 ║ Physics ║ PHYSICS COURSE ║
║  2 ║ MATH    ║ COURSE         ║
╚════╩═════════╩════════════════╝
╔════════════╦═══════════╦═══════╗
║ STUDENT_ID ║ COURSE_ID ║ GRADE ║
╠════════════╬═══════════╬═══════╣
║          1 ║         1 ║     9 ║
║          2 ║         1 ║     8 ║
║          3 ║         1 ║     6 ║
╚════════════╩═══════════╩═══════╝
我需要为数学课程的所有用户插入默认的10分,如果该用户不存在这样的分数

我不熟悉Microsoft SQL Server和T-SQL。你能帮我解答这个问题吗

INSERT INTO STUDENT_COURSE (Student_ID, course_ID, grade)
SELECT  a.ID as StudentID, b.ID as Course_ID, 10 AS grade
FROM    Student a 
        CROSS JOIN Course b
        LEFT JOIN 
        (
            SELECT  d.*
            FROM    STUDENT_COURSE d
                    INNER JOIN Course e
                        ON d.Course_ID = e.ID
            WHERE   e.Name = 'Math'
        ) c ON  a.ID = c.student_ID AND
                b.ID = c.course_ID 
WHERE   c.student_ID IS NULL AND 
        b.Name = 'Math'
如果列出表
STUDENT\u COURSE

MySQL> SELECT * FROM STUDENT_COURSE

╔════════════╦═══════════╦═══════╗
║ STUDENT_ID ║ COURSE_ID ║ GRADE ║
╠════════════╬═══════════╬═══════╣
║          1 ║         1 ║     9 ║
║          2 ║         1 ║     8 ║
║          3 ║         1 ║     6 ║
║          1 ║         2 ║    10 ║
║          2 ║         2 ║    10 ║
║          3 ║         2 ║    10 ║
╚════════════╩═══════════╩═══════╝

微软的产品叫做SQL Server,其查询语言“方言”是T-SQL(Transact-SQL)