这是一个小得多的查询版本,它基本上需要运行所有内容的表的变量。
当我运行该过程时,我收到错误消息:
第15行,第1行,第2行 关键字“table”附近的语法不正确。
alter procedure james_tester
@tablename nvarchar(200)
as
BEGIN
declare @sql nvarchar(max)
set @sql =
'
select * from '
+ @tablename
EXECUTE sp_executesql @sql
END
为了解决这个问题,我尝试使用诸如引号之类的东西并使用格式,但似乎没有任何效果。
执行james_tester'dbo.Calendar表'(这是我要查询的表)
答案 0 :(得分:1)
问题在于你如何调用你的程序。
执行james_tester'dbo.Calendar 表'
应该是
执行james_tester'dbo.Calendar'
因此出现错误信息:
关键字“表格”附近的语法不正确。
答案 1 :(得分:1)
Table
是sql server的关键字。
因此,您无法将其用作[]
的别名。
试试这个
execute james_tester 'dbo.Calendar [table]'
或
execute james_tester 'dbo.Calendar t'
或
execute james_tester 'dbo.Calendar'