This site uses different types of cookies, including analytics and functional cookies (its own and from other sites). To change your cookie settings or find out more, click here. If you continue browsing our website, you accept these cookies.
I've been using the In Database tools for several weeks now with no problems and great success. Now I need to use the Data Stream In tool. The online descriptions imply I can use temporary data that only lasts in memory as long as the process runs, but all the options in Configuration window point to creating an actual table in an actual database.
I assumed it would be that simple. But I get this error message: "Error: Data Stream In (30): Error opening query: Microsoft SQL Server Native Client 11.0: Invalid object name '##AYXe29c005170f6386fb1ba91ce9daff2da'.\42S02 = 208"
The rules for the format of regular identifiers depend on the database compatibility level. This level can be set by using ALTER DATABASE . When the compatibility level is 100 , the following rules apply:
The first character must be one of the following:
A letter as defined by the Unicode Standard 3.2. The Unicode definition of letters includes Latin characters from a through z, from A through Z, and also letter characters from other languages.
The underscore (_), at sign (@), or number sign (#).
Certain symbols at the beginning of an identifier have special meaning in SQL Server. A regular identifier that starts with the at sign always denotes a local variable or parameter and cannot be used as the name of any other type of object. An identifier that starts with a number sign denotes a temporary table or procedure. An identifier that starts with double number signs (##) denotes a global temporary object. Although the number sign or double number sign characters can be used to begin the names of other types of objects, we do not recommend this practice.
Some Transact-SQL functions have names that start with double at signs (@@). To avoid confusion with these functions, you should not use names that start with @@.
Subsequent characters can include the following:
Letters as defined in the Unicode Standard 3.2.
Decimal numbers from either Basic Latin or other national scripts.
The at sign, dollar sign ($), number sign, or underscore.
The identifier must not be a Transact-SQL reserved word. SQL Server reserves both the uppercase and lowercase versions of reserved words.
Embedded spaces or special characters are not allowed.
Supplementary characters are not allowed.
When identifiers are used in Transact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.
##AYXe29c005170f6386fb1ba91ce9daff2da looks reasonable when looking at it. The error message lead me to an article that shows:
My guess, seeing that you're using ODBC, is that your ODBC connection doesn't specify a default database, and so it's using master.
The connection to your database needs to go to the user tables for your ID and not to the master. That's where I think that the issue is.
Alteryx ACE & Top Community Contributor
Chaos reigns within. Repent, reflect and reboot. Order shall return.
I am not sure what you are suggesting for the solution.
Create an ODBC connection that points to a different database?
I am using an ole db connection and having the same issue. If I use my windows account I get this error message, but if I use a SQL Server account I do not get the error message. Everything I have read says SQL Server doesn't have specific permissions for creating temp tables, all users have that right.
My OLE BD points to the correct database, the initial catalog is specified.
We will try this with an ODBC connection and see if we have any luck.