我在 sp 内进行了运行时查询,并使用 exec() 在 sp 内执行查询,但是在创建 sp 时出现错误
The default schema does not exist.
SP 是:
CREATE PROCEDURE MySP
@tableName varchar(100)
AS
BEGIN
SET NOCOUNT ON;
declare @selectQuery varchar(MAX)
set @selectQuery = 'select * from ' + @tableName
exec(@selectQuery)
end
请帮忙
最佳答案
使用CREATE PROCEDURE dbo.MySP
您登录的用户必须具有不存在的默认架构。
DEFAULT_SCHEMA can be set to a schema that does not currently exist in the database.
此外,您还应该使用 quotename(@tableName)
和参数类型 sysname
而不是 varchar(100)
以避免 SQL 注入(inject)或只是来自非标准对象名称的错误。
关于sql - 使用 exec() 在 sp 内执行运行时查询时遇到错误 "The default schema does not exist.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3733635/