在从给定数据库中检索所有表名时,它在'GO'附近给出错误的“不正确的语法”。 [英] While retrieving all table name from given database it gives error "incorrect syntax near 'GO'."
本文介绍了在从给定数据库中检索所有表名时,它在'GO'附近给出错误的“不正确的语法”。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的存储过程
ALTER PROCEDURE [dbo]。[sp_GetTableName] - @ Database ='dbTask '
@ Database nvarchar (max)
AS
BEGIN
声明 @ a nvarchar (max)
声明 @ b nvarchar (max)
声明 @ c nvarchar (max)
声明 @ query nvarchar (m ax)
set @ a = ' USE ' + ' ' + @ Database
set @ c = ' GO'
set @ b = ' SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES'
set @ query = @ a + CHAR ( 13 )+ @ c + CHAR ( 13 )+ @ b
exec ( @query )
- print(@query)
END
我尝试了什么:
i想得到特定数据库中的所有表名
解决方案
您不能在存储过程中使用GO - 它表示批处理结束。只需从动态SQL中删除它
ALTER PROCEDURE [dbo]。[sp_GetTableName] - @ Database ='dbTask'
@ Database nvarchar (max)
AS
BEGIN
声明 @ a nvarchar (max)
声明 @ b nvarchar (max)
声明 @ query nvarchar (max)
set @ a = ' USE' + ' ' + @ Database
set @ b = ' SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES'
set @ query = @ a + CHAR ( 13 )+ @ b
exec ( @query )
- print(@query)
END
这是文档的链接备份我的声明 GO(Transact-SQL) [< a href =https://msdn.microsoft.com/en-us/library/ms188037(v=sql.110).aspx\"target =_ blanktitle =New Window> ^ ]
This is my stored procedure
ALTER PROCEDURE [dbo].[sp_GetTableName]--@Database='dbTask'
@Database nvarchar(max)
AS
BEGIN
declare @a nvarchar(max)
declare @b nvarchar(max)
declare @c nvarchar(max)
declare @query nvarchar(max)
set @a='USE'+' '+ @Database
set @c='GO'
set @b='SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES'
set @query=@a+ CHAR(13)+@c+ CHAR(13)+ @b
exec (@query)
--print (@query)
END
What I have tried:
i want to get all table name from specific database
解决方案
You can't use GO in a stored procedure - it indicates the end of a batch. Just remove it from your dynamic SQL
ALTER PROCEDURE [dbo].[sp_GetTableName]--@Database='dbTask' @Database nvarchar(max) AS BEGIN declare @a nvarchar(max) declare @b nvarchar(max) declare @query nvarchar(max) set @a='USE'+' '+ @Database set @b='SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES' set @query=@a+ CHAR(13)+ @b exec (@query) --print (@query) END
[Edit] Here is a link to the documentation to back up my statement GO (Transact-SQL)[^]
这篇关于在从给定数据库中检索所有表名时,它在'GO'附近给出错误的“不正确的语法”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文