Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 过程、函数或触发器中不允许使用语句_Sql_Sql Server_Stored Procedures - Fatal编程技术网

Sql 过程、函数或触发器中不允许使用语句

Sql 过程、函数或触发器中不允许使用语句,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有下面的代码,我已经把它放在一起,似乎工作得很好。但是,我需要将其放在存储过程中,但出现以下错误: 过程、函数或触发器中不允许使用语句 有人知道附近有工作吗 不用USE语句,只需使用完全限定的名称,即 DATABASENAME.SCHEMANAME.TABLENAME.ColumnName 你应该把它改成那样。您需要使用要在不同数据库上运行的存储过程前面的数据库(和架构)来指定完全限定名称 CREATE PROCEDURE SomeProc AS CREATE TABLE #Table

我有下面的代码,我已经把它放在一起,似乎工作得很好。但是,我需要将其放在存储过程中,但出现以下错误:

过程、函数或触发器中不允许使用语句

有人知道附近有工作吗




不用USE语句,只需使用完全限定的名称,即

DATABASENAME.SCHEMANAME.TABLENAME.ColumnName

你应该把它改成那样。您需要使用要在不同数据库上运行的存储过程前面的数据库(和架构)来指定完全限定名称

CREATE PROCEDURE SomeProc

AS

CREATE TABLE #TableRowCounts1
(
      [TableName] VARCHAR(128), 
      [RowCount] INT
) 

CREATE TABLE #TableRowCounts2
(
      [TableName] VARCHAR(128), 
      [RowCount] INT
) 

INSERT INTO #TableRowCounts1
(
      [TableName], 
      [RowCount]
      )
EXEC Database1.[dbo].sp_MSforeachtable 
      'SELECT ''?'' 
      [TableName], 
      COUNT(*) [RowCount] 
      FROM ?'

INSERT INTO #TableRowCounts2
(
      [TableName], 
      [RowCount]
      )
EXEC Database2.[dbo].sp_MSforeachtable 
      'SELECT ''?'' 
      [TableName], 
      COUNT(*) [RowCount] 
      FROM ?'

啊!完全没有注意到这一点。谢谢
CREATE PROCEDURE SomeProc

AS

CREATE TABLE #TableRowCounts1
(
      [TableName] VARCHAR(128), 
      [RowCount] INT
) 

CREATE TABLE #TableRowCounts2
(
      [TableName] VARCHAR(128), 
      [RowCount] INT
) 

INSERT INTO #TableRowCounts1
(
      [TableName], 
      [RowCount]
      )
EXEC Database1.[dbo].sp_MSforeachtable 
      'SELECT ''?'' 
      [TableName], 
      COUNT(*) [RowCount] 
      FROM ?'

INSERT INTO #TableRowCounts2
(
      [TableName], 
      [RowCount]
      )
EXEC Database2.[dbo].sp_MSforeachtable 
      'SELECT ''?'' 
      [TableName], 
      COUNT(*) [RowCount] 
      FROM ?'