以下代码有效。但是,我试图在SQL中多次执行同一个函数。因此,我想声明一个变量,以便用户只需使用SQL开头的登录名进行更新即可。SQL使用@variable和IN运算符来插入表
INSERT user_role (logon, role_name)
SELECT logon, 'QUERY' AS 'role_name'
FROM user_table
WHERE logon NOT IN ('bill', 'tim', 'dave' )
当我添加变量@Names时,IN运算符不会返回正确的结果。它基本上忽略了变量并将所有用户插入表中。如果我在WHERE语句中将“(@Names)”更改为“@Names”,我会在关键字@Names附近收到不正确的语法错误。
DECLARE @Names VARCHAR(100)
SELECT @Names = " 'bill', 'tim', 'dave' "
INSERT user_role (logon, role_name)
SELECT logon, 'QUERY' AS 'role_name'
FROM user_table
WHERE logon NOT IN (@Names)
我的确遇到了EXEC函数,但它看起来不能与INSERT函数一起使用。我在关键字EXEC附近收到不正确的语法错误。
DECLARE @Names VARCHAR(100)
SELECT @Names = " 'bill', 'tim', 'dave' "
INSERT user_role (logon, role_name)
EXEC("SELECT logon, 'QUERY' AS 'role_name'
FROM user_table
WHERE logon NOT IN ("[email protected]+")")
我甚至试着改变INSERT语句的位置,这也不起作用。我在关键字FROM附近收到不正确的语法错误。
DECLARE @Names VARCHAR(100)
SELECT @Names = " 'bill', 'tim', 'dave' "
EXEC("SELECT logon, 'QUERY' AS 'role_name'
INSERT user_role (logon, role_name)
FROM user_table
WHERE logon NOT IN ("[email protected]+")")
我试图复制这个SQL在多个地点使用,减少用户的交互量,使其工作。希望这个问题有一个简单的解决方案。
它的工作!它总是那些小东西...... – Scott